Tri-state gesture-equipped touch screen system, method, and computer program product

ABSTRACT

A system, method, and computer program product are provided for operating a mobile device including a touch screen, a memory, and a vibratory feedback mechanism coupled to at least one processor. A plurality of applications including an application is stored, utilizing the memory. A first pressure signal indicative of a first magnitude of pressure being applied to the touch screen is identified. In response to the first pressure signal indicative of the first magnitude of pressure being applied to the touch screen, a first state is identified, utilizing the at least one processor. In response to the identification of the first state, an operation is performed, utilizing the at least one processor. A second pressure signal is identified indicative of a second magnitude of pressure being applied to the touch screen that is greater than the first magnitude, in connection with the indicia. In response to the second pressure signal indicative of the second magnitude of pressure being applied to the touch screen, a second state is identified, utilizing the at least one processor. In response to the identification of the second state, the mobile device is vibrated, utilizing the vibratory feedback mechanism. Also in response to the identification of the second state, another operation is performed.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of and claims priority to U.S.patent application Ser. No. 15/072,351, now U.S. Pat. No. 10,013,094,filed Mar. 16, 2016, which, in turn, is a continuation of and claimspriority to U.S. patent application Ser. No. 13/567,004, filed Aug. 3,2012, granted under U.S. Pat. No. 9,417,754; which, in turn, claimspriority to U.S. Provisional Application No. 61/515,835, filed Aug. 5,2011, U.S. Provisional Application No. 61/566,577, filed Dec. 2, 2011,U.S. Provisional Application No. 61/569,213, filed Dec. 9, 2011, andU.S. Provisional Application No. 61/581,918, filed Dec. 30, 2011, theentire contents of all of which are incorporated herein by reference.

If any definitions (e.g., figure reference signs, specialized terms,examples, data, information, etc.) from any related material (e.g.,parent application, other related application, material incorporated byreference, material cited, extrinsic reference, etc.) conflict with thisapplication (e.g., abstract, description, summary, claims, etc.) for anypurpose (e.g., prosecution, claim support, claim interpretation, claimconstruction, etc.), then the definitions in this application shallapply.

BACKGROUND AND FIELD OF INVENTION

Embodiments of the present invention generally relate to touch screens.

BRIEF SUMMARY

A system, method, and computer program product are provided foroperating a mobile device. In one embodiment, an apparatus is provided,comprising: a mobile device including a touch screen, a memory, and avibratory feedback mechanism coupled to at least one processor; saidmemory configured to store a plurality of applications including anapplication; said touch screen configured to cooperate with the at leastone processor to display indicia; said touch screen configured tocooperate with the at least one processor to receive a first pressuresignal indicative of a first magnitude of pressure being applied to thetouch screen, in connection with the indicia; said at least oneprocessor configured to, in response to the first pressure signalindicative of the first magnitude of pressure being applied to the touchscreen, identify a first state; said touch screen configured tocooperate with the at least one processor to, in response to theidentification of the first state, perform an operation; said touchscreen configured to cooperate with the at least one processor toreceive a second pressure signal indicative of a second magnitude ofpressure being applied to the touch screen that is greater than thefirst magnitude, in connection with the indicia; said at least oneprocessor configured to, in response to the second pressure signalindicative of the second magnitude of pressure being applied to thetouch screen that is greater than the first magnitude, identify a secondstate; said vibratory feedback mechanism configured to cooperate withthe at least one processor to, in response to the identification of thesecond state, vibrate the mobile device; said touch screen configured tocooperate with the at least one processor to, in response to theidentification of the second state, perform another operation; saidtouch screen configured to cooperate with the at least one processor toreceive a third pressure signal indicative of a third magnitude ofpressure being applied to the touch screen that is greater than thefirst magnitude; said at least one processor configured to, in responseto the third pressure signal indicative of the third magnitude ofpressure being applied to the touch screen that is greater than thefirst magnitude, identify a third state; said vibratory feedbackmechanism configured to cooperate with the at least one processor to, inresponse to the identification of the third state, vibrate the mobiledevice; said touch screen configured to cooperate with the at least oneprocessor to, in response to the identification of the third state, opencontent associated with the indicia.

In another embodiment, an apparatus is provided, comprising: anon-transitory memory storing instructions and a plurality ofapplications; a touch screen; a vibratory feedback mechanism; and one ormore processors in communication with the non-transitory memory, thetouch screen, and the vibratory feedback mechanism, wherein the one ormore processors execute the instructions to: display a hyperlink;receive a first pressure signal indicative of a first magnitude ofpressure being detected on the hyperlink displayed on the touch screen;in response to the first pressure signal indicative of the firstmagnitude of pressure being detected on the hyperlink displayed on thetouch screen for less than a predetermined amount of time, identify afirst state; in response to the identification of the first state,display content associated with the hyperlink in a first manner; receivea second pressure signal indicative of a second magnitude of pressurebeing detected on the hyperlink displayed on the touch screen that isgreater than the first magnitude; in response to the second pressuresignal indicative of the second magnitude of pressure being detected onthe hyperlink displayed on the touch screen that is greater than thefirst magnitude, identify a second state; in response to theidentification of the second state, vibrate the apparatus; in responseto the identification of the second state, display the contentassociated with the hyperlink in a second manner; receive a thirdpressure signal indicative of a third magnitude of pressure beingdetected on the hyperlink displayed on the touch screen that is greaterthan the first magnitude; in response to the third pressure signalindicative of the third magnitude of pressure being detected on thehyperlink displayed on the touch screen that is greater than the firstmagnitude, identify a third state; in response to the identification ofthe third state, vibrate the apparatus; in response to theidentification of the third state, display the content associated withthe hyperlink in the first manner.

In yet another embodiment, an apparatus is provided, comprising: anon-transitory memory storing instructions and a plurality ofapplications; a touch screen; a vibratory feedback mechanism; and one ormore processors in communication with the non-transitory memory, thetouch screen, and the vibratory feedback mechanism, wherein the one ormore processors execute the instructions to: display an electronic mailmessage; receive a first pressure signal resulting from a firstmagnitude of pressure being detected on the electronic mail messagedisplayed on the touch screen; in response to the first pressure signalresulting from the first magnitude of pressure being detected on theelectronic mail message displayed on the touch screen, identify a firststate; in response to the identification of the first state, displaycontent associated with the electronic message in a first manner;receive a second pressure signal resulting from a second magnitude ofpressure being detected on the electronic mail message displayed on thetouch screen that is greater than the first magnitude; in response tothe second pressure signal resulting from the second magnitude ofpressure being detected on the electronic mail message displayed on thetouch screen that is greater than the first magnitude, identify a secondstate; in response to the identification of the second state, vibratethe apparatus; in response to the identification of the second state,display the content associated with the electronic message in a secondmanner; receive a third pressure signal resulting from a third magnitudeof pressure being detected on the electronic mail message displayed onthe touch screen that is greater than the first magnitude; in responseto the third pressure signal resulting from the third magnitude ofpressure being detected on the electronic mail message displayed on thetouch screen that is greater than the first magnitude, identify a thirdstate; in response to the identification of the third state, vibrate theapparatus; in response to the identification of the third state, displaythe content associated with the electronic message in the first manner.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

So that the features of various embodiments of the present invention canbe understood, a more detailed description, briefly summarized above,may be had by reference to various embodiments, some of which areillustrated in the accompanying drawings. It is to be noted, however,that the accompanying drawings illustrate only embodiments and aretherefore not to be considered limiting of the scope of variousembodiments of the invention, for the invention may admit to othereffective embodiments. The following detailed description makesreference to the accompanying drawings that are now briefly described.

So that the features of various embodiments of the present invention canbe understood, a more detailed description, briefly summarized above,may be had by reference to various embodiments, some of which areillustrated in the accompanying drawings. It is to be noted, however,that the accompanying drawings illustrate only embodiments and aretherefore not to be considered limiting of the scope of the invention,for the invention may admit to other effective embodiments. Thefollowing detailed description makes reference to the accompanyingdrawings that are now briefly described.

FIG. 1 illustrates a network architecture, in accordance with oneembodiment.

FIG. 2 shows a representative hardware environment that may beassociated with the servers and/or clients of FIG. 1, in accordance withone embodiment.

FIG. 3 shows a method for altering a user experience based on a receivedsignal, in accordance with one embodiment.

FIG. 4 shows a method for defining a selection made within a userinterface based in part on contact pressure, in accordance with oneembodiment.

FIG. 5 shows a pressure-sensitive user interface for making a selection,in accordance with one embodiment.

FIG. 6 shows a method for determining the context of a contactpressure-based selection and choosing an appropriate selection function,in accordance with one embodiment.

FIG. 7 shows a device having a backtouch interface, in accordance withone embodiment.

FIG. 8 shows a method for providing feedback to the user of a backtouchinterface, in accordance with one embodiment.

FIG. 9 shows a pressure-sensitive user interface for making a selectionusing a backtouch interface, in accordance with one embodiment.

FIG. 10 shows a user interface for defining settings associated with abacktouch interface, in accordance with one embodiment.

FIG. 11 shows a user interface for defining settings associated with apressure-sensitive interface, in accordance with one embodiment.

FIG. 12 shows a method for assisting a user in defining touch states, inaccordance with one embodiment.

FIG. 13 shows a user interface for assisting a user in defining touchstates, in accordance with one embodiment.

FIG. 14 shows a user interface for indicating that a backtouch orpressure-sensitive interface is activated, in accordance with oneembodiment.

FIG. 15 shows a user interface for defining a backtouch feedback style,in accordance with one embodiment.

FIG. 16 shows an alternative method for defining a selection made withina user interface based in part on contact pressure, in accordance withone embodiment.

FIG. 17 shows a user interface for performing operations on a selection,in accordance with one embodiment.

FIG. 18 shows a method for utilizing contact pressure-based gestures, inaccordance with one embodiment.

FIG. 19 shows an example of a contact pressure-based gesture forscrolling a text field, in accordance with one embodiment.

FIG. 20 shows an example of a multitouch pressure gesture for indicatinga direction, in accordance with one embodiment.

FIG. 21 shows an example of a multitouch pressure gesture for indicatinga rotation, in accordance with one embodiment.

FIG. 22 shows a 3D layered user interface, in accordance with oneembodiment.

FIG. 23 shows exemplary pattern-based gestures, in accordance with oneembodiment.

FIG. 24 shows a user interface for defining custom gestures, inaccordance with one embodiment.

While the invention is susceptible to various modifications,combinations, and alternative forms, various embodiments thereof areshown by way of example in the drawings and will herein be described indetail. It should be understood, however, that the accompanying drawingsand detailed description are not intended to limit the invention to theparticular form disclosed, but on the contrary, the intention is tocover all modifications, combinations, equivalents and alternativesfalling within the spirit and scope of the present invention as definedby the relevant claims.

DETAILED DESCRIPTION

Terms that are special to the field of the invention or specific to thisdescription may, in some circumstances, be defined in this description.Further, the first use of such terms (which may include the definitionof that term) may be highlighted in italics just for the convenience ofthe reader. Similarly, some terms may be capitalized, again just for theconvenience of the reader. It should be noted that such use of italicsand/or capitalization and/or other formatting, highlighting etc, byitself, should not be construed as somehow limiting such terms: beyondany given definition, and/or to any specific embodiments disclosedherein, etc.

In this description there may be multiple figures that depict similarstructures with similar parts or components. Thus, as an example, toavoid confusion an Object in FIG. 1 may be labeled and/or referenced as“Object (1)” and a similar, but not identical, Object in FIG. 2 islabeled and/or referenced as “Object (2)”, etc. Again, it should benoted that use of such labeling and reference manner, by itself, shouldnot be construed as somehow limiting such terms: beyond any givendefinition, and/or to any specific embodiments disclosed herein, etc.

In the following detailed description and in the accompanying drawings,specific terminology and images are used in order to provide a thoroughunderstanding. In some instances, the terminology and images may implyspecific details that are not required to practice all embodiments.Similarly, the embodiments described and illustrated are representativeand should not be construed as precise representations, as there areprospective variations on what is disclosed that may be obvious tosomeone with skill in the art. Thus this disclosure is not limited tothe specific embodiments described and shown but embraces allprospective variations that fall within its scope. For brevity, not allsteps may be detailed, where such details will be known to someone withskill in the art having benefit of this disclosure.

In the following detailed description and in the accompanying drawings,some embodiments and their constituent parts may have been simplifiedfor clarity of explanation. In some cases, a complex system may bebroken down into its constituent parts and pieces and each part or pieceexplained separately. The explanations for each part or piece maypossibly use a separate figure along with accompanying text to describevariations and alternative implementations. In some cases, complexelements have been simplified to more clearly define their function. Inmany cases, a system may be comprised of multiple complex elements witheach element being a more complex version of a simple part or piece thathas been explained separately. It is not possible to describe everypossible combination of complex elements in all possible systems. Thus,the description herein is not limited to just the specific embodimentsof parts or pieces described with each figure or in an accompanyingexplanation, or even those example systems described, but rather thepossible combinations of complex elements based on the parts and piecesdescribed.

Definitions

A computer system (e.g., a host system, host, computer, etc.) mayinclude one or more storage systems (or storage subsystems, disksystems, disk subsystems, etc.) that may include storage arrays thatinclude storage devices. A storage device may include a solid-statestorage device, hard-disk drive (HD or HDD), or other device (e.g.,tape, optical media, etc.).

A solid-state storage device may refer to a solid-state disk (SSD), butthe solid-state storage device is not necessarily an SSD. A solid-statestorage device may, for example, comprise memory devices such as flashmemory devices (e.g., NAND, NOR, MLC, SLC, etc.), but may also compriseother forms of solid-state memory devices or memory components (e.g.,SRAM, DRAM, MRAM, volatile memory, non-volatile memory, etc.), acombination of different types of solid-state components and/or othermemory devices, or a combination of solid-state memory with other typesof storage devices (e.g., hybrid disk, etc.). An SSD may be in aform-factor that is a drop-in replacement for a hard-disk (3.5″, 2.5″form factors, etc.) or may be in any other form-factor or with anyinterface (e.g., Compact Flash CF, MultiMediaCard MMC, miniSD, MemoryStick, SmartMedia, TransFlash, Secure Digital SD, DIMM or other memorymodule form factor, PCI Express Card, mini PCI-E card, etc.). An SSD mayuse a standard storage interface (e.g., IDE, SAS, SATA, etc.) or an IObus interface (e.g., PCI, PCI-E, USB, LightPeak, etc.), a networkinginterface (e.g., Ethernet, FCoE, Infiniband, etc.), a CPU bus interface(e.g., Intel QPI, HyperTransport, etc.), or other interface (e.g., PCI-Eover Ethernet, etc.). An SSD in a storage array may have a capacity ofmore than 100 Gbytes and contain tens of NAND flash memory chips. Atypical 1 Gbit NAND flash memory chip may contain 1024 flash blocks witheach flash block containing 64 flash pages and each flash pagecontaining 2 kbytes.

Storage arrays may also include a combination of SSD and HDD, orcombinations of various storage devices (e.g., magnetic, optical, tape,solid-state, etc.).

A solid-state storage device may use a disk controller (e.g., storagecontroller, controller, ASIC, other chips component(s), etc.) to providethe computer system with a standard storage (e.g., disk, storagenetworking, etc.) interface (e.g., IDE, SATA, SAS, Fibre Channel (FC),etc.), a standard peripheral (e.g., IO bus, IO attach, etc.) interface(e.g., PCI-E, USB, PCI Express, PCI, etc.), other standard interface(e.g., Ethernet, wireless 802.11, etc.), a proprietary (e.g.,non-standard, etc.) interface, a combination of these (e.g., PCI-E overEthernet, FC over Ethernet (FCoE), etc.), or other storage, networking,interconnect interface(s) etc.

A storage array controller (often also called disk controller, host-busadapter, etc.) may be logically located between the computer system andone or more SSDs or HDDs in a disk subsystem. In the context of thepresent description, the use of the term disk controller has beenavoided as a term to describe a controller that controls one or moredisks. The term storage array controller has been used herein for acontroller that controls one or more disks. In some cases, each disk(HDD or SSD etc.) may have its own disk controller, thus causingpotential confusion over terms. Alternative terms for storage arraycontroller may include host-bus adapter, host adapter, host controller.However, the term host-bus adapter (often abbreviated HBA) and similarterms have been avoided herein to avoid confusion with HBA used here forhost block address.

An SSD may include its own SSD controller, but, in some cases, a storagearray controller may have more resources than an SSD controller. Astorage array controller may use resources, such as memory, CPU, logic,non-volatile memory, etc., as well as unique information (e.g., becausea storage array controller is higher than the SSD controller in thestorage array hierarchy, i.e., further from the storage devices) inorder to manage and control a storage array as well as provideinformation to an SSD controller.

A computer system typically contains one or more CPUs. A CPU may execute(e.g., run, etc.) an operating system (e.g., Microsoft Windows, Linux.MacOS, etc.). An operating system (OS) typically sees a storage array asa collection of disk sectors or just sectors (and sectors may also becalled blocks). Disk sectors may be 512 bytes in length (and typicallyare in the 2011 timeframe). The sectors or blocks of a storage deviceare typically addressed as logical blocks using a logical block address(LBA).

To avoid confusion, the term host block address (HBA) is used herein forthe LBA used to address a storage array controller. Unless explicitlystated otherwise, it is assumed that the host block size (HBS) is equalto the disk block size (DBS). The HBA may be a composite or union of alogical unit number (LUN) that identifies a logical portion of thestorage array or disk or other device in the storage array; an LBA; thevirtual machine (VM), if any; a UserID that identifies the userapplication; a VolumeID that identifies a logical target volume; andother data that may be used for logical access or management purposes.To simplify the description, clarify the figures, and in particular tomake it clear that operations may be performed on different LUNs, theLUN may be shown separately from HBA in figures.

A disk number (D) may identify a disk or other storage device in thestorage array. A disk logical block address (DBA) is the LBA thatidentifies the disk sector on the disk or other storage device. An arrayblock address (ABA) is a composite or union of D and DBA, written <D,DBA>. The storage array may be a RAID array, JBOD, or any otherparticular type of storage array.

A disk controller for an HDD or SSD maintains the relationship betweenan ABA (or the DBA portion of the ABA) and the disk sectors that arephysically part of a storage device (often called the physical disksectors or physical sectors).

To summarize, with just a single disk, the host may provide an LBAdirectly to the disk; the disk controller may convert the LBA to thephysical disk sector (e.g., for an HDD) or to the PBN (e.g., for anSSD). In the presence of a storage array controller the host may stillprovide an LBA, but now to the storage array controller (and thus theLBA may be referred to as an HBA to avoid confusion); the storage arraycontroller may then map this HBA to an ABA and may provide the ABA (orpossibly just the DBA portion of the ABA) to the disk; the disk (e.g.,an HDD or SSD, etc.) may then convert this DBA or ABA (treating the DBAportion of the ABA as though it were just an LBA, which it is) to aphysical disk address: either the physical disk sector (e.g., for anHDD) or PBN (e.g., for an SSD).

In various embodiments, structures and their functions, operations andalgorithms (e.g., methods, functions, etc.) may be described in terms ofsoftware operations, code and pseudo-code. It should be noted that thealgorithms may be performed in hardware; software; firmware; microcode;a combination of hardware, software, firmware or microcode; or in anyother manner that performs the same function and/or has the same effect.In various embodiments, the data structures, or parts of the structures,may be stored in the storage array controller in SRAM, DRAM, embeddedflash, or other memory. Additionally, the data structures, or parts ofthem, may be stored outside the storage array controller. For example,the data structures may be stored on any of the storage devices of astorage array (the local storage or remote storage, i.e., remote fromthe storage array connected to the storage array controller) or on ahost system (the local host or a remote host, i.e., remote from the hostconnected to the storage array controller).

A storage command may be directed to a storage device and may specifyone or more operations, such as read, write, etc. A storage command maybe referred to as a disk command or just command. To help prevent suchconfusion, the term storage command may be used when referencingcommands in general. The term disk command (or disk write, etc.) may beutilized for the command as it arrives at (or is received by) the disk(either SSD or HDD, usually via a standard interface or storage bus,such as SATA, etc.). The term host command (or host write, etc.) may beutilized for the command as it leaves (or is transmitted by) the OS. Adisk command may be the same as a host command when there is a directconnection between the OS on a host system and a single disk.

A storage array controller may perform certain functions instead of (orin addition to) an OS running on a host system; and a storage arraycontroller may also perform certain functions instead of (or in additionto) disk controller(s) in a storage array. A storage array controllermay be logically located between a host system and storage array (ordisk subsystem, storage subsystem, etc.). Each disk may contain its owndisk controller, but a storage array controller may have more resourcesthan a disk controller. The algorithms described here allow a storagearray controller and attached storage accelerator units (SAUs) to useresources, such as memory, non-volatile memory, etc., as well as uniqueinformation (because a storage array controller is higher than a diskcontroller in a storage array hierarchy, i.e., further from the storagedevices) in order to manage and control a storage array as well asprovide information to disk controller(s). For example, a storage arraycontroller may be aware of LUNs but a disk controller may not be awareof LUNs. This hierarchical management approach has advantages andpotential uses that are explained throughout this description in theforms of various algorithms that may be employed by themselves or incombination.

A device driver is typically (though not necessarily) software that maybe manufactured with and sold with a storage array controller. Invarious embodiments, the device driver may be implemented in software,hardware, firmware or a combination, and may be designed, manufacturedand/or sold separately.

In one embodiment, a computer system may comprise multiple virtualmachines (VMs), each VM including an operating system, and a hypervisor.

Each OS may include a file system and one or more storage drivers. Thefile system (sometimes considered part of an OS) may translate orconvert from file-based access (i.e., in terms of directories, filenames and offsets, etc.) to disk-based access (i.e., in terms of LBAsetc.). The storage driver (sometimes considered part of an OS) may beresponsible for handling a disk or other storage device(s). The storagedriver may be separate and distinct from the device driver. The storagedriver may or may not be part of a storage stack, which is the softwarethat controls access to a file system.

In the context of solid-state storage, typically flash memory, when aflash page (or some other portion) of a storage device is no longerrequired (i.e., it is obsolete, no longer valid, or is invalid, etc.)that flash page may be marked as dirty. When an entire flash block(e.g., typically between 16 to 256 flash pages) is dirty, the entireflash block may be erased and free space may be reclaimed. If free spaceon the device is low, a flash block may be chosen that has some dirtyflash pages and some clean (i.e., pages that are not dirty, are good, orvalid, etc.) flash pages. The clean flash pages may be transferred(i.e., written, moved or copied) to a new flash block. All the originalclean flash pages may be marked as dirty and the old flash block may beerased. In the context of solid-state storage, this process oftransferring flash pages to new flash blocks and erasing old flashblocks may be referred to as garbage collection

Example embodiments described in this disclosure include one or morecomputer systems with one or more central processor units (CPUs) andpossibly one or more I/O systems coupled to one or more storage systemsthat contain one or more storage array controllers and one or morestorage devices.

In one embodiment, the storage system may include one or more busstructures. Depending on the constraints (e.g., signaling methods used,the intended operating frequencies, space, power, cost, and otherconstraints, etc.) various alternate bus structures may be used. Apoint-to-point bus may provide the optimal performance in systemsrequiring high-speed interconnections, due to the reduced signaldegradation compared to bus structures having branched signal lines,switch devices, or stubs. However, when used in systems requiringcommunication with multiple devices or subsystems, a point-to-point orother similar bus will often result in significant added cost (e.g.,component cost, board area, increased system power, etc.) and may reducethe potential memory density due to the need for intermediate devices(e.g., buffers, re-drive circuits, etc.).

Functions and performance similar to that of a point-to-point bus can beobtained by using switch devices. Switch devices and other similarsolutions offer advantages (e.g., increased memory packaging density,lower power, etc.) while retaining many of the characteristics of apoint-to-point bus. Multi-drop bus solutions provide an alternatesolution, and though often limited to a lower operating frequency canoffer a cost/performance advantage for many applications. Optical bussolutions permit significantly increased frequency and bandwidthpotential, either in point-to-point or multi-drop applications, but mayincur cost and space impacts.

Although not necessarily shown in all the Figures, the storage systemsmay also include one or more separate control (e.g., commanddistribution, information retrieval, data gathering, reportingmechanism, signaling mechanism, register read/write, configuration,etc.) buses (e.g., a presence detect bus, an I2C bus, an SMBus,combinations of these and other buses or signals, etc.) that may be usedfor one or more purposes including the determination of the storagedevice and/or storage system attributes (generally after power-up), thereporting of fault or other status information to part(s) of the system,calibration, temperature monitoring, the configuration of storagedevice(s) and/or storage subsystem(s) after power-up or during normaloperation or for other purposes. Depending on the control buscharacteristics, the control bus(es) might also provide a means by whichthe valid completion of operations could be reported by storagedevice(s) to the storage controller(s), or the identification offailures occurring during the execution of storage controller requests,etc.

As used herein, the term bus refers to one of the sets of conductors(e.g., signals, wires, traces, and printed circuit board traces orconnections in an integrated circuit) connecting two or more functionalunits in a computing system. The data bus, address bus and controlsignals may also be referred to together as constituting a single bus. Abus may include a plurality of signal lines (or signals), each signalline having two or more connection points that form a main transmissionline that electrically connects two or more transceivers, transmittersand/or receivers.

As used herein, a signal (or line, signal line, etc.) refers to one ormore electrical conductors or optical carriers, generally configured asa single carrier or as two or more carriers, in a twisted, parallel, orconcentric arrangement, used to transport at least one logical signal. Alogical signal may be multiplexed with one or more other logical signalsgenerally using a single physical signal but logical signal(s) may alsobe multiplexed using more than one physical signal.

As used herein, memory devices are generally defined as integratedcircuits that are composed primarily of memory (e.g., storage, etc.)cells, such as DRAMs (Dynamic Random Access Memories), SRAMs (StaticRandom Access Memories), FeRAMs (Ferro-Electric RAMs), MRAMs (MagneticRandom Access Memories), Flash Memory (e.g., NAND flash, NOR flash,etc.) and other forms of random access and related memories that storeinformation in the form of electrical, optical, magnetic, chemical,biological, combination(s) of these, and/or in other forms.

Dynamic memory device types may include FPM DRAMs (Fast Page ModeDynamic Random Access Memories), EDO (Extended Data Out) DRAMs, BEDO(Burst EDO) DRAMs, SDR (Single Data Rate) Synchronous DRAMs, DDR (DoubleData Rate) Synchronous DRAMs, DDR2, DDR3, DDR4, or any of the expectedfollow-on devices and related technologies such as Graphics RAMs, VideoRAMs, LP RAM (Low Power DRAMs) which are often based on the fundamentalfunctions, features and/or interfaces found on related DRAMs.

Flash memory device types may include: NAND, NOR, SLC, MLC, TLC usingany interface (e.g., standard interface (e.g., ONFI, etc.); non-standardinterface; etc.). Flash memory device types may also include any of theexpected follow-on devices and related technologies.

Memory devices may include chips (die) and/or single or multi-chip ormulti-die packages of various types, assemblies, forms, andconfigurations. In multi-chip packages, the memory devices may bepackaged with other device types (e.g., other memory devices, logicchips, CPUs, hubs, buffers, intermediate devices, analog devices,programmable devices, etc.) and may also include passive devices (e.g.,resistors, capacitors, inductors, etc.). These multi-chip packages mayinclude cooling enhancements (e.g., an integrated heat sink, heat slug,fluids, gases, micromachined structures, micropipes, capillaries, etc.)that may be further attached to the carrier or another nearby carrier orother heat removal or cooling system. Other forms of packaging (e.g.,assemblies, modules, cards, units, molding, encapsulation, etc.) formemory devices are also possible.

Although not necessarily shown in all the Figures, storage and memorysupport devices (e.g., storage controller(s), network controller(s),chipset(s), adapter(s), expander(s), buffer(s), buffer circuit(s),buffer chip(s), register(s), intermediate circuit(s), power supplyregulator(s), VRMs, hub(s), re-driver(s), PLL(s), DLL(s), non-volatilememory, SRAM, DRAM, logic circuits, analog circuits, digital circuits,diodes, switches, LEDs, crystals, active components, passive components,combinations of these and other circuits, etc.) may be comprised ofmultiple separate chips (e.g., die, dies, dice, integrated circuits,etc.) and/or components, may be combined as multiple separate chips ontoone or more substrates, may be combined into a single package (e.g.,using die stacking, multi-chip packaging, etc.) or even integrated ontoa single device based on tradeoffs such as: technology, power, space,weight, cost, etc.

One or more of the various passive devices (e.g., resistors, capacitors,inductors, combination(a) of these, etc.) may be integrated into thesupport chip packages, or into the substrate, board, PCB, or raw carditself, based on tradeoffs such as: technology, power, space, cost,weight, etc. These packages may include an integrated heat sink or othercooling enhancements (e.g., such as those described above, etc.) thatmay be further attached to the carrier or another nearby carrier orother heat removal or cooling system.

Memory and storage devices, intermediate devices and circuits, hubs,buffers, registers, clock devices, passives and other memory and storagesupport devices etc. and/or other components may be attached (e.g.,coupled, connected, etc.) to the storage system(s) and/or subsystem(s)and/or other component(s) via various methods including solderinterconnects, conductive adhesives, socket structures, pressurecontacts, electrical/mechanical/optical and/or other methods that enablecommunication between two or more devices (e.g., via electrical,optical, wireless, combinations of these, or alternate means, etc.).

The one or more storage system(s) and/or subsystem(s) and/or othercomponents/devices may be connected (e.g., electrically, optically,wireless, etc.) to the CPU complex, computer system or other systemenvironment via one or more methods such as soldered interconnects,connectors, pressure contacts, conductive adhesives, opticalinterconnects (e.g., laser, LED, optic fiber, etc.), wireless links(e.g., coupling, coils, etc.) and/or other signal communication and/orpower delivery methods. Physical connector systems may include matingconnectors (male/female), conductive contacts and/or pins on one carriermating with a male or female connector, optical connections, pressurecontacts (often in conjunction with a retaining, alignment, and/orclosure mechanism) and/or one or more of various other communication andpower delivery methods. The interconnection(s) may be disposed along oneor more edges of an assembly (e.g., module, card, adapter, etc.) and/orplaced a distance from the storage or other subsystem depending on suchapplication requirements as ease of upgrade, ease of repair, cost,available space and/or volume, heat transfer constraints, component sizeand shape and other related physical, electrical, optical,visual/physical access, requirements and constraints, etc. Electricalinterconnections on a card are often referred to as contacts, pins,connection pins, tabs, etc. Electrical interconnections on a connectorare often referred to as contacts or pins.

The integrity, reliability, availability, serviceability, performanceetc. of a communication path, data storage contents, and all functionaloperations associated with each element of a storage system or storagesubsystem may be improved by using one or more fault detection and/orcorrection methods. Any or all of the various elements of a storagesystem or storage subsystem may include error detection and/orcorrection methods such as CRC (cyclic redundancy code, or cyclicredundancy check), ECC (error-correcting code), EDC (error detectingcode, or error detection and correction), LDPC (low-density paritycheck), parity, checksum or other encoding/decoding methods suited forthis purpose. Further reliability enhancements may include operationre-try (e.g., repeat, re-send, etc.) to overcome intermittent or otherfaults such as those associated with the transfer of information, theuse of one or more alternate, stand-by, or replacement communicationpaths to replace failing paths and/or lines, complement and/orre-complement techniques or alternate methods used in computer, storage,communication, and related systems.

Additional functions that may reside local to the storage subsystemand/or storage system include write and/or read buffers, one or morelevels of cache, protocol translation, error detection and/or correctioncircuitry, data scrubbing, local power management circuitry and/orreporting, operational and/or status registers, initializationcircuitry, performance monitoring and/or control, and other functions.

Terminology

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms (e.g., a, an, the, etc.) are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise.

The terms comprises and/or comprising, when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

In the following description and claims, the terms include and comprise,along with their derivatives, may be used, and are intended to betreated as synonyms for each other.

In the following description and claims, the terms coupled and connectedmay be used, along with their derivatives. It should be understood thatthese terms are not necessarily intended as synonyms for each other. Forexample, connected may be used to indicate that two or more elements arein direct physical or electrical contact with each other. Further,coupled may be used to indicate that that two or more elements are indirect or indirect physical or electrical contact. For example, coupledmay be used to indicate that that two or more elements are not in directcontact with each other, but the two or more elements still cooperate orinteract with each other.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a circuit, component, module orsystem. Furthermore, aspects of the present invention may take the formof a computer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

In this description a portable multifunction device (a device) is usedas an example. It should be understood, however, that one or more of theembodiments described herein may be applied to any device (e.g.,consumer device, phone, phone system, cell phone, internet phone, musicplayer, video player, camera, social interaction device, radios, TV,watch, personal communication device, electronic wallet, smart jewelry,personal computer, tablet, laptop computer, computer, server, embeddedsystem, electronic glasses, displays, projector, computer appliance,kitchen appliance, home control appliance, lighting control, networkdevice, router, switch, TiVO, AppleTV, GoogleTV, set-top box, cable box,modem, cable modem, PC, tablet, media box, streaming device,entertainment center, GPS device, automobile system, ATM, toy, gamingsystem, camera, video camera, music device, storage device, back-updevice, exercise machine, e-book reader, PDA, combinations of these,etc.).

The device may support one or more applications e.g., searchapplications contacts and/or friends applications, messagingapplications, telephone applications, video conferencing applications,e-mail applications, communications applications, voice recognitionapplications, instant messaging (IM) applications, blog and/or bloggingapplications, photographic applications (e.g., catalog, management,upload, editing, etc.), shopping, payment, digital camera applications,digital video camera applications, web browsing and browserapplications, digital music player applications, digital video playerapplications, cloud applications, office productivity applications,backup and storage applications, other applications or combinations ormultiple instances (e.g., versions, etc.) of these, etc.

Devices themselves may include (e.g., comprise, be capable of including,have features to include, have attachments, communicate with, etc.) oneor more devices, e.g., as separate components, working in cooperation,as a collection of devices, as a multi-function device, with sockets orports for extra devices and/or components, attached (e.g., directattach, network attached, etc.) devices, upgrade components, expansiondevices and/or modules, etc.

The device may have (e.g., execute, perform, capable of being programmedto perform, etc.) multiple functions (e.g., telephone, videoconferencing, e-mail, instant messaging, blogging, digital photography,digital video, web browsing, digital music playing, social interaction,shopping, searching, combinations of these, etc.). Instructions forperforming the device functions may be included in a computer readablestorage medium or other computer program product configured forexecution by one or more processors.

Language

The terminology and language used herein is for the purpose ofdescribing particular embodiments only and is not intended to belimiting.

As used herein, the singular forms (e.g., a, an, the, one, etc.) areintended to include the plural forms as well, unless the context clearlyindicates otherwise.

As used herein, the terms comprises and/or comprising, when used in thisspecification, specify the presence of stated features, numbers,integers, steps, operations, elements, and/or components, etc, but donot preclude the presence or addition of one or more other features,numbers, integers, steps, operations, elements, components, etc. and/orgroups thereof.

In the following description and claims, the terms include and comprise,along with their derivatives, may be used, and are intended to betreated as synonyms for each other.

In the following description and claims, the terms coupled and connectedmay be used, along with their derivatives. It should be understood thatthese terms are not necessarily intended as synonyms for each other. Forexample, connected may be used to indicate that two or more elements arein direct physical or electrical contact with each other. Further,coupled may be used to indicate that that two or more elements are indirect or indirect physical or electrical contact. For example, coupledmay be used to indicate that that two or more elements are not in directcontact with each other, but the two or more elements still cooperate orinteract with each other.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the following claims areintended to include any structure, material, or act for performing thefunction in combination with other claimed elements as specificallyclaimed.

This description is presented for purposes of illustration andexplanation, but is not intended to be exhaustive or limited to theinvention in the forms disclosed. Modifications, permutations,combinations, and variations of embodiments will be understood andapparent to those of ordinary skill in the art without departing fromthe scope and spirit of this description.

The embodiments chosen and described herein are presented in order tobest explain the principles of the embodiments and their practicalapplications, and to enable others of ordinary skill in the art tounderstand the embodiments with various modifications as are suited tothe particular use contemplated.

As will be understood and appreciated by one skilled in the art, one ormore embodiments described herein may be a system, device, method, orcomputer program product, etc. Accordingly, one or more embodimentsdescribed herein may take the form of an entirely hardware embodiment,an entirely software embodiment (including firmware, resident software,micro-code, etc.) or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a circuit,component, module or system. Furthermore, one or more embodimentsdescribed herein may take the form of a computer program productembodied in one or more computer readable medium(s) having computerreadable program code embodied thereon.

FIG. 1 illustrates a network architecture 100, in accordance with oneembodiment. As shown, a plurality of networks 102 is provided. In thecontext of the present network architecture 100, the networks 102 mayeach take any form including, but not limited to a local area network(LAN), a wireless network, a wide area network (WAN) such as theInternet, peer-to-peer network, etc.

Coupled to the networks 102 are servers 104 which are capable ofcommunicating over the networks 102. Also coupled to the networks 102and the servers 104 is a plurality of clients 106. Such servers 104and/or clients 106 may each include a desktop computer, lap-topcomputer, handheld computer, mobile phone, personal digital assistant(PDA), tablet computer, peripheral (e.g., printer, etc.), any componentof a computer, and/or any other type of logic. In order to facilitatecommunication among the networks 102, at least one gateway 108 isoptionally coupled therebetween.

FIG. 2 shows a representative hardware environment that may beassociated with the servers 104 and/or clients 106 of FIG. 1, inaccordance with one embodiment. Such figure illustrates a typicalhardware configuration of a mobile device in accordance with oneembodiment having a central processing unit 210, such as amicroprocessor, and a number of other units interconnected via a systembus 212.

The mobile device shown in FIG. 2 includes a Random Access Memory (RAM)214, Read Only Memory (ROM) 216, an I/O adapter 218 for connectingperipheral devices such as disk storage units 220 to the bus 212, a userinterface adapter 222 for connecting a keyboard 224, a mouse 226, aspeaker 228, a microphone 232, and/or other user interface devices suchas a touch screen (not shown) to the bus 212, communication adapter 234for connecting the mobile device to a communication network 235 (e.g., adata processing network) and a display adapter 236 for connecting thebus 212 to a display device 238.

The mobile device may have resident thereon any desired operatingsystem. It will be appreciated that an embodiment may also beimplemented on platforms and operating systems other than thosementioned. One embodiment may be written using JAVA, C, Objective C,and/or C++ language, or other programming languages, along with anobject oriented programming methodology. Object oriented programming(OOP) has become increasingly used to develop complex applications.

Of course, the various embodiments set forth herein may be implementedutilizing hardware, software, or any desired combination thereof. Forthat matter, any type of logic may be utilized which is capable ofimplementing the various functionality set forth herein.

FIG. 3 shows a method 300, in accordance with one embodiment. As anoption, the method may be implemented in the context of the architectureand environment of any subsequent Figure(s). Of course, however, themethod may be implemented in any desired environment.

As shown in operation 302, a signal is received in association with atouch interface of a device. In one embodiment, the signal may include apressure signal which is indicative of a magnitude of pressure. In thecontext of the present description, such pressure signal may include anysignal that is a function of or related to a pressure applied to thedevice. In one embodiment, such pressure signal may be indicative of amagnitude of pressure being applied to a touch interface of the device.In various embodiments, such pressure signal may be generated by apressure sensor including, but not limited to those described in thecontext of subsequently described embodiments, or any other mechanism,for that matter, that is capable of generating the pressure signal.

In other embodiments, the signal may include a touch signal indicativeof a touch interface being touched. In the context of the presentdescription, such touch signal may or may not be indicative of amagnitude of pressure being applied to a touch interface of the device.For example, such touch signal may, in one embodiment, simply indicatewhether applied pressure is sensed, or not, e.g., not necessarily gaugeany more than two pressure states, including pressure-sensed andpressure-not-sensed, etc.

Also in the context of the present description, the aforementioneddevice may include any device including, but not limited to thosedescribed in the context of this and/or subsequently describedembodiments. Further, in various embodiments, the touch interface may ormay not be combined with a display. For example, if the touch interfaceis combined with a display, the touch interface may include a touchscreen. Thus, the touch interface may, in various embodiments, include,but is not limited to a touch screen or any other interface responsiveto touch that is described in the context of this and/or subsequentlydescribed embodiments.

In one optional embodiment, the touch interface may be positioned on afirst face of a device that includes a display on a second face thereof.Further, the first face and second face may include any respective faces(e.g., front, back, left side, right side, top side, bottom side, etc.)that are different. Just by way of example, in various embodiments, thefirst face and the second face may be on opposite faces of the device ofthe device. Further, the first face may include a side face and thesecond face may include a front face of the device. Even still, thefirst face may include a back face and the second face may include afront face of the device. Of course, the touch interface may bepositioned on the same face as the display, in other embodiments.

As indicated in operation 304, a user experience may be altered,utilizing the signal. In the context of the present description, theuser experience may include any aspect of the device that is capable ofbeing directly or indirectly experienced by a user including, but notlimited to those described in the context of this and/or subsequentlydescribed embodiments.

For example, in the context of an embodiment involving the pressuresignal, the user experience may be altered as a function of themagnitude of the pressure being applied to the touch interface,utilizing the pressure signal. Just by way of example, in variousembodiments, the user experience may be altered by causing input to thedevice, by causing output from the device, by causing processing by thedevice, etc. In other embodiments involving a touch signal, the userexperience may be altered in any manner, utilizing the touch signal(dependent or independent of any fluctuation of pressure).

Of course, the foregoing embodiments may be altered by adding and/orremoving various features. For example, in one embodiment, the pressuresignal may be received which is indicative of the magnitude of pressurebeing applied to a touch interface positioned on a first face of adevice that includes a display on a second face thereof. To this end,the user experience may be altered as a function of the magnitude of thepressure being applied to the touch interface, utilizing the pressuresignal.

In another embodiment, a pressure signal may be received which isindicative of a magnitude of pressure being applied to a touch screen.To this end, the user experience may be altered as a function of themagnitude of the pressure being applied to the touch screen, utilizingthe pressure signal. In still yet another optional embodiment, a touchsignal may be received which is indicative of a touch interface beingtouched, where the touch interface is positioned on a first face of adevice that includes a display on a second face thereof. To this end,the user experience may be altered, utilizing the touch signal. Again,any of the features described above (or hereinafter, for that matter)may or may not be combined in any desired manner.

More illustrative information will now be set forth regarding variousoptional architectures and features with which the foregoing techniquesdiscussed in the context of any of the present or previous figure(s) mayor may not be implemented, per the desires of the user. For instance,various optional examples and/or options associated with the operations302 and/or 304, and/or other optional features have been and will be setforth in the context of a variety of possible embodiments. It should bestrongly noted, however, that such information is set forth forillustrative purposes and should not be construed as limiting in anymanner. Any of such features may be optionally incorporated with orwithout the inclusion of other features described.

FIG. 4 shows a method 400 for defining a selection made within a userinterface based in part on contact pressure, in accordance with oneembodiment. As an option, the method 400 may be implemented in thecontext of the architecture and environment of the previous Figures orany subsequent Figure(s). Of course, however, the method 400 may becarried out in any desired environment. It should also be noted that theaforementioned definitions may apply during the present description.

As shown, it is determined whether sufficient initial contact pressureis being exerted on an interaction surface. See determination 402.

In the context of the present description, an interaction surface refersto a surface through which a user may interact with a device. It maytake up the majority of a device face, or just a subset. In variousembodiments, an interaction surface may be sensitive to one or moretypes of interaction, including but not limited to, contact, pressure,and/or proximity. In one embodiment, an interaction surface is receptiveto multitouch input. In another embodiment, an interaction surface maybe non-planar. In yet another embodiment, an interaction surface may betransparent, and combined with a display. In still another embodiment,an interaction surface may be replaceable. Some embodiments of aninteraction surface may have more than one texture, to provide tactileguides to a user when used on the back face of a device. Otherembodiments of an interaction surface are non-rectangular.

In various embodiments, an interaction surface may utilize one or moreforms of technology to sense contact. These contact-sensing technologiesmay include, but are not limited to, capacitive, resistive, optical,surface acoustic wave based, and/or any other contact sensingtechnologies now known or later developed.

In various embodiments, an interaction surface may utilize one or moreforms of technology to sense proximity. These proximity-sensingtechnologies may include, but are not limited to, capacitive, resistive,eddy current, optical, ultrasonic, heat, electric field based, and/orany other contact sensing technologies now known or later developed.

In various embodiments, an interaction surface may utilize one or moreforms of technology to sense pressure. These pressure-sensingtechnologies may include, but are not limited to, conductive, resistive,piezoelectric, and/or any other pressure sensing technologies now knownor later developed. In some embodiments, an interaction surface may beable to only detect the total pressure being exerted on the surface. Inother embodiments, an interaction surface may be able to discern thecontact pressures associated with one or more points or areas ofcontact.

In the context of the present description, contact pressure is thepressure associated with one or more contact points or contact areas,the pressure being exerted on an interaction surface. For example, inone embodiment, contact pressure may be the pressure exerted on aninteraction surface by a single finger press.

In the context of the present description, a contact area refers to thearea of an interaction surface which is in physical contact with animplement of interaction. In various embodiments, the contact area maybe described, stored, and processed, as a collection of cells that arepart of an array. In one embodiment, this array may directly correspondto pixels of a display. In another embodiment, the array may correspondto a grid of discrete areas on an interaction surface which sensecontact, pressure, or both. In still another embodiment, the contactarea is represented as a primitive shape (e.g., circle, square, etc.)which best fits the actual area in contact with an implement ofinteraction.

In the context of the present description, an implement of interactionrefers to an object which is detectable by an interaction surface in oneor more ways (e.g., proximity, contact, pressure, etc.). In variousembodiments, implements of interaction may include, but are not limitedto, fingers, skin, a stylus, and/or any other object with which a usermay interact with a device.

In the context of the present description, a contact point refers to asingle location on an interaction surface which is associated withphysical contact with an implement of interaction. In variousembodiments, the contact point may be determined from a contact area.For example, in one embodiment, a contact point may be located in thecenter of its associated contact area. In another embodiment, a contactpoint may be located on an edge of its associated contact area.

Determining whether sufficient initial contact pressure is being exertedon an interaction surface depends on a threshold contact pressure. Insome embodiments, the smallest degree of contact pressure may besufficient, such that the definition of a selection may be triggered byany contact. In other embodiments, the definition of a selection doesnot occur until a non-negligible threshold contact pressure has beendetected. In one embodiment, this threshold contact pressure may bedefined by the user. In this way, accidental definitions of a selectionmay be avoided.

In some embodiments, determination 402 may be performed only aftercertain events have occurred. For example, in one embodiment, thedetermination may be made only after receipt of an input or combinationof inputs. Possible inputs include, but are not limited to, objectproximity to the interaction surface, activation of a hardware switch orbutton, activation of a software switch or button, and/or any otherinput capable of being detected. In one embodiment, the determinationmay not be made until the host device is woken from a sleep state. Inanother embodiment, the determination itself may also wake the hostdevice from a sleep state.

If the result of determination 402 is that there is sufficient initialcontact pressure being exerted on an interaction surface, the currentcontact pressure level is determined. See operation 404.

In the context of the present description, a contact pressure level isthe pressure reading generated from the raw data received from a touchsensor. In various embodiments, the contact pressure level may berepresented by a number. For example, in some embodiments, the contactpressure level may be represented by an integer. In another embodiment,the contact pressure level may be represented by a floating-pointnumber. In various embodiments, the contact pressure level may berepresented by a percentage of the measurable range of contactpressures. In one embodiment, the contact pressure level may berepresented by a unit less number. In another embodiment, the contactpressure level may be represented by an actual measure of the contactpressure, associated with a unit of pressure.

In various embodiments, the contact pressure level may be represented bya touch state. In the context of the present description, a touch staterefers to a predefined subset of the range of measurable contactpressures. For example, in one embodiment, contact pressure levels maybe represented as one of four predefined touch states: no touch, lighttouch, medium touch, and heavy touch. As an option, the lowest touchstate may require some form of proximity. In some embodiments, the usermay be able to specify how the measurable range of contact pressures ispartitioned across a predefined number of touch states. In oneembodiment, the number and boundaries of touch states may be definedsystem-wide, for all applications. In another embodiment, the number andboundaries of touch states may be defined on a per-application basis.

As shown, the selection area is calculated. See operation 406. In thecontext of the present description, the selection area refers to aregion of the display, or a region of an object pictured on the display,which has been chosen for selection. The calculation of the selectionarea may be based upon one or more factors, including, but not limitedto, a contact pressure level, a touch state, a contact area, a contactpoint, a selection boundary, a selection boundary geometry, and/or anyother information derived from user interaction. In some embodiments,the selection area may be described as the pixels contained within aselection boundary.

In the context of the present description, a selection boundarydescribes the boundary of an associated selection area, and is basedupon a selection boundary geometry. Additionally, in the context of thepresent description, a selection boundary geometry refers to the shapeof a selection boundary. In some embodiments, a selection boundarygeometry may not have reference to actual size or location. For example,in one embodiment, a selection boundary geometry may be described usingfractional coordinates on a unit square.

In various embodiments, a selection area may be described, stored,and/or processed as the area contained within a selection boundary. Aselection boundary may be represented by a selection boundary geometry,a screen location, and one or more transformations, such as scale ororientation. In one embodiment, the screen location is the point onwhich the transformed selection boundary geometry is centered.

In some embodiments, the selection area may be described, stored, and/orprocessed, as a collection of cells that are part of an array. In oneembodiment, this array may directly correspond to pixels of a display.In another embodiment, the array may correspond to a grid based on acoordinate system specific to an object being displayed. In stillanother embodiment, the selection area may be described, stored, andprocessed as a mathematical function that defines the boundary of theselection area.

In one embodiment, the shape of a selection boundary may be one of aplurality of selection boundary geometries predefined within anoperating system. In another embodiment, the shape of a selectionboundary may be predefined within an application, independent ofselection boundary geometries defined within the operating system. Inyet another embodiment, the selection boundary geometry may be specifiedby a user. In still another embodiment, the geometry of the selectionboundary may depend upon at least one form of user input, including butnot limited to contact pressure, number of fingers in contact with thescreen, device orientation, location of user fingers, and/or any otherform of user input. Finally, in another embodiment, the geometry of aselection boundary may depend upon the content within or near a locationassociated with the selection (e.g., contact point, finger location,focal point of user's eyes, cursor location, etc.).

In some embodiments, selection boundaries may have geometries based uponsimple shapes, including, but not limited to, ovals, circles, triangles,squares, rectangles, and/or higher order polygons. In other embodiments,selection boundaries may be based upon regular shapes (e.g., a star, aplus sign, etc.). In one embodiment, a selection boundary may be basedupon the geometry of a contact area.

There are numerous ways in which a selection boundary may be described,stored, and/or processed. In various embodiments, a selection boundarymay be represented by the combination of an established selectionboundary geometry with a location, a scale, and/or a rotation.

In one embodiment, a selection boundary may be described using thevertex coordinates of a selection boundary geometry, in conjunction withlocation, scale, and/or rotation factors. For example, a rectangularselection boundary geometry may be described by the coordinates of thefour corners. As an option, the vertices of a selection boundarygeometry may be described using coordinates within the unit square.

In another embodiment, a selection boundary may be described using amathematical function representing an established selection boundarygeometry, in conjunction with location, scale, and/or rotation factors.For example, an elliptical selection boundary geometry may be describedby an ellipse function whose foci depend upon the scale factor.

In yet another embodiment, a selection boundary may be described using aspline-based representation of a selection boundary geometry, inconjunction with location, scale, and/or rotation factors. For example,a curled selection boundary geometry may be described using splinescombined with location, scale, and rotation factors.

In other embodiments, a selection boundary may be described by a bitmaprepresentation of a selection boundary geometry, in conjunction withlocation, scale, and/or rotation factors. For example, in oneembodiment, a bitmap representation of a contact area may be used as aselection boundary geometry associated with a selection boundary. Inanother embodiment, a bitmap representation of an irregular shape may beused as a selection boundary geometry associated with a selectionboundary. In this way, geometries which may be difficult to describeusing vertices, formulas, or splines may be used as the bases for aselection boundary.

The selection area is calculated by determining the selection boundary.In various embodiments, the selection boundary may be determined bytransforming an appropriate selection boundary geometry as a function ofuser input, including but not limited to, contact pressure level,contact point, contact area, number of fingers detected, deviceorientation, etc. Once the selection boundary has been determined, theselection area is known.

In various embodiments, the selection boundary may be defined bytransforming the scale of an appropriate selection boundary geometry asa function of user input. For example, in one embodiment, a selectionboundary with a circular geometry may have a larger radius at highercontact pressure levels. In another embodiment, a rectangular selectionboundary geometry may be scaled linearly by a factor proportional to thecontact pressure level. In some embodiments, the relationship betweenselection boundary geometry scale and a contact pressure level isproportional. In other embodiments, the relationship between selectionboundary geometry scale and a contact pressure level is inverselyproportional, such that higher pressure may make the geometry smaller.

In various embodiments, the selection boundary may be defined bytransforming the orientation of an appropriate selection boundarygeometry as a function of user input. For example, in one embodiment, aselection boundary with a star-shaped geometry may be rotated furtherclockwise at higher contact pressure levels. In some embodiments, therelationship between selection boundary geometry orientation and acontact pressure level is proportional, such that an increase inpressure may result in a clockwise rotation. In other embodiments, therelationship between selection boundary geometry orientation and acontact pressure level is inversely proportional, such that higherpressure may cause a counterclockwise rotation.

In some embodiments, a selection boundary may have an anchor point. Inthe context of the present description, an anchor point refers to apoint located on or near the selection boundary geometry which remainsfixed as the geometry is transformed. In one embodiment, a selectionboundary may have a scaling anchor point, which remains fixed as thegeometry is scaled. For example, a square selection boundary may have ascaling anchor point in the upper left corner, causing the square toexpand down and to the right, keeping the upper left corner stationary.

In another embodiment, a selection boundary may have a rotational anchorpoint, which is used as an axis of rotation as the selection boundarygeometry is rotated. For example, a star-shaped selection boundary mayhave a rotational anchor point located in the center, such that itrotates along an axis of symmetry.

In various embodiments, the calculation of the selection area may dependupon the context of the selection. Specifically, the selection boundarymay be dependent upon the type of content on or near a point or areaassociated with the selection, including but not limited to, a contactpoint, a contact area, a cursor, a user focus, etc. In variousembodiments, the selection boundary geometry and the manner in which ittransforms as a function of user input may be context dependent. Forexample, in one embodiment, a selection made on or near a text field maycause the selection boundary geometry to be rectangular, with a scalinganchor point located in an upper corner appropriate for the textlanguage (e.g., upper left corner for English, upper right corner forArabic, etc.). In another embodiment, a selection on or near a textfield may cause the rectangular boundary geometry to scale in incrementsof the same scale as the height and width of the text. In this way, itmay be clear to the user which text has been selected, as there maynever exist a selection boundary which contains only half a line orcharacter.

In another embodiment, a selection on or near a text field may result ina rectangular selection boundary geometry which scales proportionally toa contact pressure level in a manner similar to how text is selectedusing a cursor. In this way, a user may select text in a familiarmanner, while only having to vary the pressure being exerted on acontact point, for example. In one embodiment, the text selection beginsto increase once a predefined contact pressure level has been achieved.As an option, the rate at which the selection grows may be a function ofthe contact pressure level, once the predefined contact pressure levelhas been achieved and the selection grown initiated. In anotherembodiment, the text selection scaling may be tiered, such that at onetouch state, the selection grows character by character, at anintermediate touch state the selection grows word by word, and so on,such that the user is able to enlarge the text selection in incrementsof characters, words, lines, paragraphs, and pages, depending on thetouch state. As an option, the selection may also be incremented bysentences.

In other embodiments, the above-mentioned methods for selecting textusing a selection which expands in the direction the text would be readin may also be applied to the selection of other linear subject matter.For example, in one embodiment, this method may be used to select avideo segment. As an option, the selection scaling may be tiered,growing from frame-by-frame to second-by-second to minute-by-minute, andso on. In another embodiment, this method may be used in the selectionof a portion of chronologically arranged material. Possible materialwith a temporal arrangement may include, but is not limited to, acollection of photos, messages in an email account, text messages, webbrowser history, and/or any other collection of items which may bearranged chronologically.

In various embodiments, a selection made within a graphic (e.g.,photograph, drawing, movie still, bitmapped or rasterized text, etc.)may utilize a default selection boundary geometry with a default scalinganchor point. In one embodiment, the user may be able to predefine thedefault selection boundary geometry and/or default scaling anchor point,to be used when making a selection within a graphic. In still anotherembodiment, the default selection boundary geometry and/or defaultscaling anchor point may be predefined within the operating system. Asan option, these defaults may be predefined on a per-application basis.

In various embodiments, a selection made within a photograph may resultin the use of a context-specific selection boundary geometry whichtransforms in a context specific manner. For example, in one embodiment,a selection made within a photograph containing one or more people mayutilize the rough shape of the subjects' faces as a selection boundarygeometry. As an option, the selection boundary geometry may be composedof the perimeter of all faces within a certain distance of a pointrelated to the selection (e.g., contact point, user focus, etc.), thedistance being proportional to a user input (e.g., contact pressurelevel, touch state, etc.). Face selection may be used to assist the userin establishing the identity of photographed individuals, allowingfuture identification to be performed automatically using facialrecognition. In one embodiment, facial and other forms of recognitionmay be performed by a host device, a remote computer, a cloud service,or any other computational resource, or combination of these and otherresources.

In another embodiment, a selection made within a photograph on or nearan eye may utilize a rough shape of the eye as a selection boundarygeometry. As an option, the exactness of the method used toautomatically detect the shape of an eye may vary as a function of auser input, such as contact pressure level. Eye selection may be used toassist the user in removing the “red eye” effect sometimes seen inphotographs.

In one embodiment, a selection made within a graphic may cause theselection boundary geometry to be defined by the collection of pixelsnear a point associated with the selection (e.g., contact point, userfocus, etc.) which are similar in at least one aspect. Possible aspectsinclude, but are not limited to, color, one or more dimensions of anassociated color space, brightness, transparency, and/or any otheraspect that may be associated with a pixel. As an option, the degree ofsimilarity between pixels required to influence the selection boundarygeometry may be a function of a user input, such as a contact pressurelevel. In this way, a user may be assisted in separating an objectwithin the graphic from a background or other visual elements.

In various embodiments, there may exist limits to the amount a selectionboundary geometry may be transformed as a function of user input. Forexample, in one embodiment, the selection boundary geometry may increasein size as the contact pressure level increases, until an upper contactpressure threshold is reached. Contact pressure levels beyond the upperthreshold may not increase the size of the selection boundary geometryany further. In another embodiment, the scale of the selection boundarygeometry may be limited by a lower contact pressure threshold, such thatreducing the contact pressure level below the threshold may not reducethe scale of the selection boundary geometry any further. In yet anotherembodiment, both upper and lower contact pressure thresholds may beimplemented. In other embodiments, this concept of thresholds may beapplied to other variable aspects of the selection boundary, such as theorientation of the selection boundary geometry, and as a function ofother user input, including but not limited to the location of a contactpoint, the size of a contact area, user focus, and/or any other type ofuser input.

In one embodiment, the user may be able to predefine one or more contactpressure thresholds associated with the limits of a transformation ofthe selection boundary geometry. As an option, the user may alsopredefine the limits of the transformation, in addition to the maximumand/or minimum contact pressure level which may affect saidtransformation. In another embodiment, these contact pressure thresholdsand/or transformation limits may be predefined within the operatingsystem. In still another embodiment, the contact pressure thresholds maybe automatically optimized over time, by observing the typical range ofpressures the user exerts in various use scenarios.

In one embodiment, the selection boundary geometry and/or transformationof the selection boundary geometry may depend upon the proximity of anobject to an interaction surface, rather than an aspect of physicalcontact with an interaction surface.

In various embodiments, the selection boundary may depend, at least inpart, upon the user focus. In the context of the present description,user focus refers to a point or area on a display which is the visualand/or interactive focus of the user. For example, in one embodiment,the user focus may be determined by tracking the eyes of a user with oneor more device-mounted cameras, and calculating where the user islooking. This may also be referred to as user gaze, or user gazetracking. As an option, eye movement may also be monitored, to ascertainthe manner in which the user is using the device (e.g., methodicallyreading text, quickly scanning text, examining a picture, visuallysearching for an icon, etc.). In another embodiment, the user focus maybe defined as the location of a cursor in a text environment. In stillanother embodiment, the user focus may be established through userinput, such as a finger tap.

Various aspects of the selection boundary may depend upon the userfocus. For example, in one embodiment, the user focus may be used todetermine the context of a selection. In another embodiment, the userfocus may be used to determine the location of a selection, allowing theuser to make a selection without having to change the location of acontact point. In still another embodiment, the tracking of eye movementmay be used to determine the type of selection (e.g., reading eyemovement may trigger a text selection, etc.).

Once the selection boundary has been determined using an appropriateselection boundary geometry that has been transformed as a function of auser input, the selection area may be calculated.

As shown, the selection area is displayed. See operation 408. In variousembodiments, a selection area may be displayed using one or moreselection functions. In the context of the present description, aselection function refers to a function of one or more inputs whichdetermines one or more properties of a selection. For example, in oneembodiment, possible selection function inputs may include, but are notlimited to, touch state, contact pressure level, selection state, fingerlocations, device orientation, user focus, pressure uncertainty, touchuncertainty, contact point, contact area, gestures, application typeand/or context, application flags, operating system flags, and/or anyother form of user or system input.

Within the context of the present description, pressure uncertaintyrefers to any data associated with the uncertainty inherent in measuringpressure exerted on an interaction surface. Pressure uncertainty mayinclude, but is not limited to, the uncertainty of a measured contactpressure level, a multidimensional array of values representing thevariance of contact pressure measured for each cell/pixel in thevicinity of a contact point, an uncertainty value inherent to aparticular pressure sensor, and/or any other type of data associatedwith uncertainty in pressure measurement.

Within the context of the present description, touch uncertainty refersto any data associated with the uncertainty inherent in sensing contactwith an interaction surface. Touch uncertainty may include, but is notlimited to, the error range associated with the location of a contactpoint, a multidimensional array of values representing the probabilitiesof contact measured for each cell/pixel in the vicinity of a contactpoint, an uncertainty value inherent to a particular touch sensor,and/or any other type of data associated with uncertainty in sensingcontact.

Within the context of the present description, a selection state refersto whether a selection is ‘dynamic’ and still able to vary as a functionof user input, or ‘static’, and not currently varying as a function ofuser input.

In various embodiments, a selection function may determine one or morepresentation properties of a selection. For example, possiblepresentation properties may include, but are not limited to, shading,color, contrast, brightness, line style, animation routine,transparency, pattern, border style, area style, and/or any other visualproperty that may describe an object on a display. Examples of animationroutines include, but are not limited to, “marching ants”, changingcolors, flashing, simulated optical distortions, pulsing highlights,and/or any other routine which varies location, transparency, color,content, and/or any other graphical property over time. In someembodiments, an animation routine may be a function of user input.

In various embodiments, a selection function may vary one or morepresentation properties as a function of contact pressure. In this way,the user has visual feedback as to the level of pressure they areexerting on the device. For example, in one embodiment, the selectionfunction may indicate the contact pressure level by shading theselection with a color which is somewhere between a pair of colors whichrepresent the extrema of measurable contact pressure levels.

In various embodiments, a selection function may determine one or morefundamental properties of a selection. Within the context of thisdescription, fundamental selection properties may include, but are notlimited to, selection boundary geometry, transformation(s) to be appliedto the selection boundary geometry as a function of user input, anchorpoint(s), and/or any other property which may be associated with aselection area.

In various embodiments, the application of a selection function maydisplay a secondary boundary. Within the context of this description, asecondary boundary is any boundary, radius, or area associated with aselection area, which is not the selection boundary. For example, in oneembodiment, a secondary boundary may be the area within which facialdetection is being performed, as opposed to the selection boundary,which may be the outline of detected faces. In another embodiment, asecondary boundary may be the area within which eye detection is beingperformed. In yet another embodiment, the secondary boundary mayrepresent the pressure uncertainty or touch uncertainty associated witha contact area.

In various embodiments, the secondary boundary may be displayed inaddition to, or instead of, the selection boundary. For example, in oneembodiment where face detection is being performed as part ofcalculating the selection area, the selection boundary may be indicatedwith a solid color line while the secondary boundary may be indicatedwith a thin dotted line.

In various embodiments, the area unique to the secondary boundary (i.e.the portion of the enclosed area which does not overlap with theselection area) may have presentation properties that differ from theselection area. For example, in one embodiment, a user may make a textselection of which the intended boundaries are uncertain. The portion ofthe text which was almost certainly intended to be selected may beshaded in green, while the text which may or may not have been selectedintentionally may be shaded in red. The user intention may beextrapolated from uncertainty associated with the contact and/or contactpressure used to make the selection, in accordance with one embodiment.

In various embodiments, the secondary boundary may be used to indicateuncertainty associated with a form of machine recognition including, butnot limited to, facial recognition, OCR, and/or any other form ofmachine recognition. For example, faces within a selection which havebeen recognized with a threshold degree of confidence may be outlined ingreen, while faces whose recognition is suspect (i.e. multiple viablematches, etc.) may be outlined in red (i.e. a secondary border).

As shown, after the selection area has been displayed, it is determinedwhether the selection establishment conditions have been met. Seedetermination 410.

Within the context of the present description, selection establishmentconditions refer to one or more predefined conditions whose satisfactionmay cause the selection state to switch from ‘dynamic’ to ‘static’. Forexample, in one embodiment, once the selection establishment conditionshave been satisfied, the selection may no longer vary with contactpressure levels until determination 402 once again detects sufficientinitial contact pressure. In various embodiments, the selectionestablishment conditions may be defined within a selection function.

In various embodiments, one or more selection establishment conditionsmay depend upon changes in the contact pressure level. For example, insome embodiments, selection establishment may be conditioned uponwhether the contact pressure level drops below a predefined level. Inone embodiment, this threshold contact pressure level may be defined asbeing a set amount of pressure less than the current contact pressurelevel. In this way, a user may reduce the contact pressure a smallamount to modify their selection, with further reduction causing aselection establishment condition to be satisfied. In anotherembodiment, the threshold contact pressure level may be a set pressureamount.

In various embodiments, a selection establishment condition may dependupon contact pressure velocity, or the rate at which the contactpressure level is changing. For example, in one embodiment, a user maybe able to satisfy a selection establishment condition by quicklyreducing the contact pressure level to a predefined level within apredefined amount of time. In another embodiment, selectionestablishment may be conditioned upon whether a user has increased thecontact pressure level to a predefined level within a predefined amountof time. In yet another embodiment, a selection may be established byexceeding a predefined contact pressure velocity, without regard to theactual pressure levels. As a specific example, a user may establishtheir selection by a quick pulse of their finger, without having toreach a particular pressure level.

In various embodiments, a selection establishment condition may dependupon how much time has elapsed since a particular event. For example, inone embodiment, a selection may be established if the user maintains acontact pressure level for a predefined amount of time. As an option,there may be a predefine tolerance level for pressure variations whichmay not reset this timing, allowing for small fluctuations in contactpressure which may be difficult for a user to control. In anotherembodiment, a selection establishment condition may be satisfied once apredefined amount of time has elapsed since the satisfaction ofdetermination 402.

In various embodiments, a selection establishment condition may dependupon forms of user input that are not related to contact pressure. Theseforms of user input may include, but are not limited to, gestures, achange in the number of fingers in contact with the device, change indevice orientation, surpassing a threshold level of accelerations (e.g.,wrist flick, etc.), and/or any other form of user input. It should benoted that selection establishment may also be conditioned upon thesatisfaction of a combination of any of the previously describedconditions.

If it is determined that the selection establishment conditions have notbeen met, the selection is updated in a loop through performingoperations 404, 406, and 408. The selection may continue to vary as afunction of user input until the selection establishment conditions havebeen met.

If it is determined that the selection establishment conditions havebeen met, the selection state is changed from ‘dynamic’ to ‘static’. Seeoperation 412.

Setting the selection state to ‘static’ means the selection is no longerbeing modified by user input. In various embodiments, the selectionfunction may depend in part on the selection state. For example, in oneembodiment, when the selection state is ‘static’, the secondary boundarymay be removed from the display. In another embodiment, a ‘static’selection state may cause the selection area to be displayed in adifferent color, or with a different style of selection boundary. In yetanother embodiment, changing a selection state from ‘dynamic’ to‘static’ may cause one or more application and/or operating system flagsto be set.

In various embodiments, changing a selection state from ‘dynamic’ to‘static’ may prompt the user to choose an action to be performed on orwith the contents of the selection. For example, in one embodiment,after the desired faces have been highlighted and the user has reducedthe contact pressure level below the dynamic selection minimum thresholdpressure, they may be prompted to confirm the identity of the selectedfaces. In another embodiment, after a text selection has been given a‘static’ selection state, the user may be prompted with operations thatmay be performed on the selected text, including but not limited tocopy, cut, paste, spell check, style (e.g., bold, underlined, italic,etc.), font, font size, and/or any other operation which may beperformed on text.

In some embodiments, once a selection has become ‘static’, it can nolonger be modified and may be destroyed upon creation of a newselection. In other embodiments, a user may further modify a staticselection by first applying a contact pressure sufficient to satisfydetermination 402. In one embodiment, satisfying determination 402 witha static selection already in existence may change the selection stateof the previous selection from static to dynamic, allowing furthervariation as a function of user input. In another embodiment, satisfyingdetermination 402 with a static selection already in existence maycreate a new selection, as a function of user input, which is combinedwith the previously made selection. In yet another embodiment, a usermay chose whether to replace a previously made selection or augment(i.e. add to, subtract from, etc.) a previously made selection with anew selection. As an option, the user choice may be indicated throughgesture, voice command, toggling a hardware control, toggling a softwarecontrol, and/or any other form of user input.

In various embodiments, method 400 may be adapted to allow for thedefinition, establishment, and modification of selections through othertypes of user input. Other types of user input may include, but are notlimited to, proximity to an interaction surface, number of contactpoints, gestures, and/or any other form of user input. For example, inone embodiment, a user may expand a text selection by bringing theirfinger into proximity to the interaction surface.

FIG. 5 shows a pressure sensitive user interface 500 for making aselection, in accordance with one embodiment. As an option, the userinterface 500 may be implemented in the context of the architecture andenvironment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the user interface 500 may be implemented in anydesired environment. The aforementioned definitions may apply during thepresent description.

As shown, the user interface 500 may be utilized in making a selectionbased in part on pressure exerted by the user upon one or moreinteraction surfaces located on a device. For example, in oneembodiment, a user's finger 502 may exert a small amount of force overcontact area 504, which is centered on contact point 506 located on apressure sensitive touch screen. If the contact pressure level issufficient, then a selection area 508 having a selection boundary 510 iscalculated and displayed. As the contact pressure is increased, theselection boundary expands to encompass a larger selection area 512.

FIG. 6 shows a method 600 for determining the context of a contactpressure-based selection and choosing an appropriate selection function,in accordance with one embodiment. As an option, the method 600 may beimplemented in the context of the architecture and environment of theprevious Figures or any subsequent Figure(s). Of course, however, themethod 600 may be implemented in any desired environment. Theaforementioned definitions may apply during the present description.

As shown, the context determination zone is defined. See operation 602.Within the context of the present description, a context determinationzone refers to the area that is examined while determining the contextof a selection. In various embodiments, the context determination zonemay be initially defined as a function of one or more elements of userinput upon which the selection itself is based. For example, in oneembodiment, the context determination zone may be initially defined tobe the contact area. In another embodiment, the context determinationzone may be a predefined shape (e.g., circle, square, etc.) ofpredefined size, centered on the contact point. As an option, the usermay be able to specify the initial size and shape of the contextdetermination zone. In yet another embodiment, the context determinationzone may be located such that the contact point is off-center, toprovide a more intuitive user experience (e.g., the zone may be offsetto compensate for the user's view being obstructed by their finger,etc.).

In still another embodiment, the context determination zone may have apredefined size. As an option, the predefined initial size for a contextdetermination zone may be chosen such that it is smaller than any userinterface elements which may be detected. As an additional option, thepredefined initial size may be chosen such that it is large enough toassist a user in distinguishing between potential selection targetswhich are close to each other.

As shown, once the context determination zone has been defined, it isthen determined whether there is a user interface control widget withinthe context determination zone. See determination 604.

Within the context of the present description, a user interface controlwidget refers to any element within a user interface which may receiveuser input, which are typically non-textual. For example, in variousembodiments, user interface control widgets may include, but are notlimited to, buttons, radio boxes, check boxes, drop down lists, sliders,tabs, and/or any other non-textual UI widget.

In some embodiments, user interface control widgets may also includehyperlinks which are isolated from a text field. For example, text thatresponds to user interaction like a button, but is not located within aselectable text field. Selectable text fields and hyperlinks embeddedwithin a text field (e.g., links within a web page, links within a wordprocessing document, etc.) are specifically excluded from thisdefinition of user interface control widgets, as they are treated asseparate cases within this method.

In various embodiments, the determination as to whether there is a userinterface control widget within the context determination zone beginswith determining whether there is a UI control widget located at thecontact point upon which the zone is based. In this way, time is notwasted determining the context of a well-aimed contact point.

If a UI control widget is not located at the contact point, then it maybe determined if there is a UI control widget in the vicinity, withinthe context determination zone. In various embodiments, thisdetermination may be performed using the bounding boxes associated withuser interface elements. Within the context of the present description,a bounding box refers to a rectangle within which a user interfacecontrol widget may reside. In some embodiments, a bounding box may bethe smallest rectangle which may contain a particular user interfacecontrol widget. In this way, detection of user interface control widgetswhose shape is not rectangular is simplified.

For example, in one embodiment, the determination as to whether there isa user interface control widget within the context determination zonemay be performed by determining if the boundary of the contextdetermination zone intersects with the bounding box of any userinterface control widgets. As an option, if the initial size of thecontext determination zone is larger than a predefined minimum (e.g.,smallest bounding box associated with a typical UI control widget,smallest bounding box present within the present UI, etc.), thedetermination may also verify the absence of any bounding boxescompletely contained within the context determination zone, on theinitial pass.

In another embodiment, the determination may be performed by calculatingthe distances between the center of the context determination zone andthe center of every UI control widget present in the interface, andcomparing them with a distance related to the size of the contextdetermination zone.

If it is determined in 604 that there is at least one user interfacecontrol widget within the context determination zone, then a contextsensitive UI control widget selection function is chosen. See operation606. In various embodiments, once an appropriate selection function ischosen, a selection is defined based upon user input. In one embodiment,the selection is defined using method 4.

Within the context of the present description, a context sensitiveselection function refers to a selection function adapted for use inmaking a selection in a context which has been automatically determined.In various embodiments, a context sensitive selection function mayinclude logic to use a different context sensitive selection function todefine the user's selection, based upon user input. In this way, a usermay be able to indicate that the initial context determination is notcorrect, and that another selection function should be used.

For example, in one embodiment, a context sensitive UI control widgetselection function may include logic such that, if the contact pressurelevel exceeds a predefined limit P₀, further definition of the selectionis handled by a different context sensitive selection function, such asone adapted for selecting hyperlinks. In another embodiment, a contactpressure level exceeding P₀ may cause the context determination zone toexpand, and the process of choosing an appropriate selection function toresume, ignoring the UI control widget previously detected within thezone. As an option, future determinations may ignore all UI controlwidgets. In this way, a context-aware user selection initiated with acontact point in the vicinity of a UI control widget may be redirectedto a different type of subject matter without forcing the user toreposition their finger, for example.

In various embodiments, a context sensitive UI control widget selectionfunction may depend upon the context determination zone. For example, inone embodiment, a context sensitive UI control widget selection functionmay use the context determination zone as a secondary boundary. In thisway, the selection function may be able to continue searching thecontext determination zone for additional UI control widgets.

In various embodiments, a context sensitive UI control widget selectionfunction may include logic to handle the case where there is more thatone UI control widget within the context determination zone. In oneembodiment, the selection function may choose the UI control widgetwhose center is closest to the center of the context determination zone.In another embodiment, the selection function may choose the UI controlwidget whose bounding box has greatest overlap with the contextdetermination zone. In still another embodiment, the selection functionmay choose the UI control widget whose bounding box has an edge orcorner closest to the center of the context determination zone.

In various embodiments, a context sensitive UI control widget selectionfunction may include logic to allow the user to toggle between multiplewidgets found within the context determination zone. For example, in oneembodiment, the selection function may include a list of all UI controlwidgets found at least partially within the context determination zone.As an option, the widgets may be arranged in the list in order ofdistance from the center of the context determination zone. In anotherembodiment, the selection function may traverse the list sequentially,selecting a different widget. As an option, the list traversal may occuras a function of user input, including but not limited to, gestures,contact pressure velocity, accelerometer data, and/or any other userinput. In still another embodiment, switching between different widgetsfound within the context determination may occur after a predefinedamount of time has elapsed, and the selection establishment conditionshave not yet been satisfied. In yet another embodiment, a contextsensitive UI control widget selection function may use user focus tochoose between multiple UI control widgets found within the contextdetermination zone.

In various embodiments, a context sensitive UI control widget selectionfunction may visually indicate the selection of a widget to the userbefore the selection has been established. For example, in oneembodiment, the selection function may highlight the outline of thewidget. In another embodiment, the selection function may shade thewidget using a predefined mask of the widget. In still anotherembodiment, the selection function may shade and/or outline the widgetbounding box. In yet another embodiment, the selection function maychange and aspect of text associated with the widget, aspects includingbut not limited to font, text style, text color, and/or any other textproperty. As a specific example, a context sensitive UI control widgetselection function may cause the name of a button to be displayed inblue italics if it is the current context-based selection derived fromuser input. In this way, the user may see what control is about to beactivated before satisfying the selection establishment conditions.

In various embodiments, a context sensitive UI control widget selectionfunction may have selection establishment conditions that depend uponthe type of user interface control widget that is being selected. Someuser interface control widgets are multi-state in nature (e.g., sliders,drop down lists, etc.), while others are bi-state (e.g., buttons, checkboxes, etc.). In some embodiments, it may be assumed that when a usersatisfies the selection establishment conditions for a bi-state UIcontrol widget, they intend for the state of the widget to be toggled.The selection establishment conditions for multi-state UI controlwidgets, on the other hand, may include the election of a widget state.

For example, in one embodiment, the selection establishment conditionsfor a multi-state widget may include one or more primary conditions toestablish that the user intends for that particular multi-state widgetto be selected, and a secondary condition, to establish the state ofthat widget.

In various embodiments, the secondary condition may be satisfied (andthe widget state chosen) through user input which includes, but is notlimited to, contact pressure. As an option, after the primary selectionestablishment conditions have been satisfied, the selection function maydisregard pre-established pressure triggers (e.g., P₀, global pressuretriggers, etc.) until the secondary selection establishment conditionhas been satisfied.

For example, in one embodiment, once the primary conditions forselecting a slider widget have been satisfied, a user may select aslider value by varying the contact pressure level between twopredefined threshold pressures which represent the slider state extrema.In another embodiment, the contact pressure level at the time ofsatisfaction of the primary conditions may be used as a zero point,represented by the middle of the slider values. Increasing the contactpressure may increase the slider value, decreasing the contact pressuremay decrease the slider value. In other embodiments, these methods maybe used to traverse the items within a drop down list, or any othermulti-state UI control widgets which may be assigned a value.

In various embodiments, the secondary selection establishment conditionsmay be finally satisfied using methods previously discussed, includingbut not limited to, a contact pressure velocity trigger.

Once the selection establishment conditions have been satisfied, thestate of the UI control widget may be set. For example, a button may betoggled, a check box may be checked or unchecked, a slider value may beset, etc.

As a specific example of one embodiment, from a user perspective, a usermay make contact with and exert pressure upon an interaction surface,with a contact point near a drop down menu. The user may increase thecontact pressure until the drop down menu is highlighted. Aftermaintaining that contact pressure level for a few seconds, the list ofmenu items becomes visible, after which the user may select an item byvarying the contact pressure. Once the desired menu item is highlighted,the user may execute a rapid increase in pressure to finalize theselection of that menu item.

If it is determined in 604 that there is no user interface controlwidget within the context determination zone, it is then determinedwhether there is an embedded hyperlink within the context determinationzone. See determination 608.

Within the context of the present description, an embedded hyperlinkrefers to a hyperlink which is embedded within a text field. Forexample, iln one embodiment, embedded hyperlinks may include, but arenot limited to, text or image links within a web page, text or imagelinks within a word processing document, and/or any other type of linkwhich may be contained within a document. It should be noted that anylink which may be classified as a hyperlink may fall within thisdefinition of embedded hyperlink, or within the definition of a UIcontrol widget.

In various embodiments, the determination as to whether there is anembedded hyperlink within the context determination zone begins withdetermining whether there is an embedded hyperlink located at thecontact point upon which the zone is based.

If an embedded hyperlink is not located at the contact point, then itmay be determined if there is an embedded hyperlink in the vicinity,within the context determination zone. In various embodiments, themethods described for locating a UI control widget within the contextdetermination zone may also be applied to determining whether there isan embedded hyperlink in the zone. In one embodiment, the bounding boxesmay be handled by the application displaying the document in which anembedded hyperlink may be found. In another embodiment, the boundingboxes may be handled at a lower level, by the operating system.

If it is determined in 608 that there is at least one embedded hyperlinkwithin the context determination zone, then a context sensitive embeddedhyperlink selection function is chosen. See operation 610. In variousembodiments, once an appropriate selection function is chosen, aselection may be defined based upon user input. In one embodiment, theselection may be defined using method 4.

In various embodiments, a context sensitive embedded hyperlink selectionfunction may include logic to use a different context sensitiveselection function to define the user's selection, based upon userinput. In this way, a user may be able to indicate that the initialcontext determination is not correct, and that another selectionfunction should be used.

For example, in one embodiment, a context sensitive embedded hyperlinkselection function may include logic such that, if the contact pressurelevel exceeds a predefined limit P₂, further definition of the selectionis handled by a different context sensitive selection function, such asone adapted for selecting text. In another embodiment, a contactpressure level exceeding P₂ may cause the context determination zone toexpand, and the process of choosing an appropriate selection function toresume, ignoring the embedded hyperlink previously detected within thezone. As an option, future determinations may ignore all embeddedhyperlinks. In this way, a context-aware user selection initiated with acontact point in the vicinity of an embedded hyperlink may be redirectedto a different type of subject matter without forcing the user toreposition their finger, for example.

In various embodiments, a context sensitive embedded hyperlink selectionfunction may depend upon the context determination zone. For example, inone embodiment, a context sensitive embedded hyperlink selectionfunction may use the context determination zone as a secondary boundary.In this way, the selection function may be able to continue searchingthe context determination zone for additional embedded hyperlinks.

In various embodiments, a context sensitive embedded hyperlink selectionfunction may include logic similar to that used in a context sensitiveUI control widget selection function to handle the case where there ismore that one embedded hyperlink within the context determination zone.Additionally, in various embodiments, a context sensitive embeddedhyperlink selection function may include logic similar to that used in acontext sensitive UI control widget selection function to allow a userto toggle between multiple embedded hyperlinks found within the contextdetermination zone.

In various embodiments, a context sensitive embedded hyperlink selectionfunction may visually indicate the selection of an embedded hyperlinkbefore the selection has been established. For example, in oneembodiment, the selection function may change the color of an embeddedtext hyperlink. In another embodiment, the selection function may changethe font, style, or font size of an embedded text hyperlink. In yetanother embodiment, the selection function may highlight the borders ofa linked image. In this way, the user may see which embedded hyperlinkis about to be activated before satisfying the selection establishmentconditions.

In various embodiments, a context sensitive embedded hyperlink selectionfunction may have selection establishment conditions which change,depending upon previous user input. For example, in one embodiment, ifthe contact pressure level surpasses a value of P₁, but not P₂, theselection establishment condition may change to require the selection ofan option from a hyperlink contextual menu. The contextual menu mayprovide options common to web browsers, including but not limited to“open link”, “copy link”, and/or any other action which may be performedon or with a hyperlink. In various embodiments, the selection of thecontextual menu item may be established using methods including, but notlimited to, those described for multi-state UI control widgets, or othertypes of selections.

In various embodiments, once the selection establishment conditions havebeen satisfied, the selected embedded hyperlink may be activated.

If it is determined in 608 that there are no embedded hyperlinks withinthe context determination zone, it is then determined whether there is aselectable text field within the context determination zone. Seedetermination 612.

Within the context of the present description, a selectable text fieldrefers to a field of text which a user may select and perform operationsupon (e.g., copy, cut, paste, etc.). In one embodiment, a selectabletext field may also include any rasterized text which is recognizedusing an optical character recognition routine.

In various embodiments, the determination as to whether there is aselectable text field within the context determination zone begins withdetermining whether there is a selectable text field located at thecontact point upon which the zone is based.

If a selectable text field is not located at the contact point, then itmay be determined if there is a selectable text field in the vicinity ofthe contact point and within the context determination zone. In variousembodiments, the methods described for locating a UI control widgetwithin the context determination zone may also be applied to determiningwhether there is a selectable text field in the zone, including the useof bounding boxes.

If it is determined in 612 that there is at least one selectable textfield intersecting with or within the context determination zone, then acontext sensitive selectable text selection function is chosen. Seeoperation 614. In various embodiments, once an appropriate selectionfunction is chosen, a selection may be defined based upon user input. Inone embodiment, the selection may be defined using method 4.

In various embodiments, if there is a selectable text field located atthe contact point, the context sensitive selectable text selectionfunction may behave like other text selection functions. For example, inone embodiment, the selection of the text would start at the contactpoint, and expand with pressure in the direction in which the text wouldbe read.

In various embodiments, if there is a selectable text field within thecontext determination zone, but not at the contact point, the selectionfunction may define the selection based upon the entire selectable textfield. For example, in one embodiment, the text within selectable textfield found in the context determination zone may be selected startingat the beginning of the text field, even if it is not near the contactpoint. In another embodiment, the selection of the text begins at thelocation closest to the contact point.

In various embodiments, a context sensitive selectable text selectionfunction may depend upon the context determination zone. For example, inone embodiment, a context sensitive selectable text selection functionmay use the context determination zone as a secondary boundary. In thisway, the selection function may be able to continue searching thecontext determination zone for additional selectable text fields.

In various embodiments, a context sensitive selectable text selectionfunction may include logic to handle the case where there is more thanone selectable text field within the context determination zone. In oneembodiment, the selection function may choose the selectable text fieldwhich is closest to the contact point, the selection not extendingbeyond that text field. In another embodiment, the selection functionmay start the text selection in the selectable text field closest to thecontact point; once all of the text in that closest field has beenselected, the selection may continue to expand into the next closesttext field, starting at the beginning of the field. In still anotherembodiment, the selection function may include logic similar to thatused in a context sensitive UI control widget selection function tohandle the case where there is more that one selectable text fieldwithin the context determination zone. Additionally, in yet anotherembodiment, a context sensitive selectable text selection function mayinclude logic similar to that used in a context sensitive UI controlwidget selection function to allow a user to toggle between multipleselectable text fields found within the context determination zone.

In various embodiments, a context sensitive selectable text selectionfunction may include logic to use a different context sensitiveselection function to define the user's selection, based upon userinput. In this way, a user may be able to indicate that the initialcontext determination is not correct, and that another selectionfunction should be used.

For example, in one embodiment, a context sensitive selectable textselection function may include logic such that, if the contact pressurelevel exceeds a predefined limit P₄, further definition of the selectionis handled by a different context sensitive selection function, such asone adapted for selecting graphics. In another embodiment, a contactpressure level exceeding P₄ may cause the context determination zone toexpand, and the process of choosing an appropriate selection function toresume, ignoring the selectable text field previously detected withinthe zone. As an option, future determinations may ignore all selectabletext fields. In this way, a context-aware user selection initiated witha contact point in the vicinity of a selectable text field may beredirected to a different type of subject matter without forcing theuser to reposition their finger, for example.

In various embodiments, a context sensitive selectable text selectionfunction may visually indicate the selection of a selectable text fieldbefore the selection has been established. For example, in oneembodiment, the selection function may shade the selected text within aselectable text field. In another embodiment, the selection function mayhighlight the borders of an entire selectable text field which has beenselected.

In various embodiments, a context sensitive selectable text selectionfunction may have selection establishment conditions which change,depending upon previous user input. For example, in one embodiment, ifthe contact pressure level surpasses a value of P₃, but not P₄, theselection establishment condition may change to require the selection ofan option from a text selection contextual menu. The contextual menu mayprovide options including, but not limited to, copy, cut, paste, style,send via email, send via SMS, lookup online, and/or any other actionwhich may be performed on selected text. In various embodiments, theselection of the contextual menu item may be established using methodsincluding, but not limited to, those described for multi-state UIcontrol widgets, or other types of selections.

If it is determined in 612 that there is no text within the contextdetermination zone, it is then determined whether there is a selectablegraphic within the context determination zone. See determination 616.

Within the context of the present description, a selectable graphicrefers to an image or display, or a portion of an image or display,which a user is able to select and perform operations upon (e.g., copy,cut, paste, save, etc.). In one embodiment, a selectable graphic mayrefer to any portion of a user interface which is able to be capturedwith a screenshot.

In various embodiments, the determination as to whether there is aselectable graphic within the context determination zone begins withdetermining whether there is a selectable graphic located at the contactpoint upon which the zone is based.

If a selectable graphic is not located at the contact point, then it maybe determined if there is a selectable graphic in the vicinity of thecontact point and within the context determination zone. In variousembodiments, the methods described for locating a UI control widgetwithin the context determination zone may also be applied to determiningwhether there is a selectable text field in the zone, including the useof bounding boxes. As an option, in addition to determining theboundaries of the bounding boxes within the context determination zone,it may also be determined whether they are able to be selected (e.g.,checking a system flag, DRM, copy protection, etc.).

If it is determined in 616 that there is at least one selectable graphicwithin the context determination zone, then a context sensitiveselectable graphic selection function is chosen. See operation 618. Invarious embodiments, once an appropriate selection function is chosen, aselection may be defined based upon user input. In one embodiment, theselection may be defined using method 4.

In various embodiments, if there is a selectable graphic located at thecontact point, the context sensitive selectable graphic selectionfunction may behave like other graphic selection functions. For example,in one embodiment, the selection of the graphic may be defined usingmethod 4.

In various embodiments, if there is a selectable graphic within thecontext determination zone, but not at the contact point, the selectionfunction may define the selection based upon the entire selectablegraphic object. For example, in one embodiment, an image file embeddedin a document near the contact point and at least partially within thecontext determination zone may be selected in its entirety. In anotherembodiment, said image file may be partially selected, starting at alocation within the image that is closest to the contact point, andscaling as a function of user input and in a manner defined by theselection function.

In various embodiments, a context sensitive selectable graphic selectionfunction may depend upon the context determination zone. For example, inone embodiment, a context sensitive selectable graphic selectionfunction may use the context determination zone as a secondary boundary.In this way, the selection function may be able to continue searchingthe context determination zone for additional selectable graphicobjects.

In various embodiments, a context sensitive selectable graphicsselection function may include logic to handle the case where there ismore than one selectable graphic object within the context determinationzone. In one embodiment, the selection function may choose theselectable graphic object which is closest to the contact point.

In another embodiment, the selection function may include logic similarto that used in a context sensitive UI control widget selection functionto handle the case where there is more that one selectable graphicobject within the context determination zone. Additionally, in yetanother embodiment, a context sensitive selectable graphic selectionfunction may include logic similar to that used in a context sensitiveUI control widget selection function to allow a user to toggle betweenmultiple selectable graphic objects found within the contextdetermination zone.

In various embodiments, a context sensitive selectable graphics functionmay pass control to another user interface function, depending upon userinput. In this way, a user may be able to indicate that the initialcontext determination is not correct, and that they wish to activate adifferent user interface routine (e.g., application launcher, favoriteslist, system settings, etc.).

For example, in one embodiment, a context sensitive selectable graphicselection function may include logic such that, if the contact pressurelevel exceeds a predefined limit P₆, further user input is handled by adifferent context sensitive selection function, such as one adapted forselecting graphics. In another embodiment, a contact pressure levelexceeding P₄ may cause the context determination zone to expand, and theprocess of choosing an appropriate selection function to resume,ignoring the selectable graphic previously detected within the zone. Asan option, future determinations may ignore all selectable graphics. Inthis way, a context-aware user selection initiated with a contact pointin the vicinity of a selectable graphic may be redirected to a differenttype of subject matter without forcing the user to reposition theirfinger, for example.

In various embodiments, a context sensitive selectable graphicsselection function may visually indicate the selection of a selectablegraphic object before the selection has been established. For example,in one embodiment, the selection function may shade the selected graphicobject. In another embodiment, the selection function may highlight theborders of a graphic object which has been selected.

In various embodiments, a context sensitive selectable graphicsselection function may have selection establishment conditions whichchange, depending upon previous user input. For example, in oneembodiment, if the contact pressure level surpasses a value of P₅, butnot P₆, the selection establishment condition may change to require theselection of an option from a graphic selection contextual menu. Thecontextual menu may provide options including, but not limited to, copy,cut, paste, set as wallpaper, send via email, send via SMS, and/or anyother action which may be performed on selected graphics. In variousembodiments, the selection of the contextual menu item may beestablished using methods including, but not limited to, those describedfor multi-state UI control widgets, or other types of selections.

If it is determined in 616 that there is no selectable graphics withinthe context determination zone, then the determination zone is expanded.See operation 620.

In one embodiment, the context determination zone may be expanded by afixed number of pixels. In another embodiment, the determination zonemay be expanded by a scaling factor. Once the context determination zonehas been expanded, the context determinations are performed again.

In one embodiment, if the context determination zone reaches apredefined threshold size, the user may be informed that a context couldnot be determined and a selection cannot be made. Other forms of userfeedback indicating a failure to determine context include an alert, aprompt, audio feedback, visual feedback, LED light, and/or any othertype of feedback.

In various embodiments, the user may be able to specify which contextsthey wish to be detected automatically. In some embodiments, additionaltypes of subject matter may be detectable, including types of text data,such as dates, email addresses, phone numbers, and/or any other type oftext information.

In some embodiments, contextual selections may be performed using method600 only in situations where a contact pressure based form of userinteraction has not been defined. In other embodiments, contextualselections may be made system wide using method 600 or similar methods.

FIG. 7 shows a device 700 having a backtouch interface, in accordancewith one embodiment. As an option, the device 700 may be implemented inthe context of the architecture and environment of the previous Figuresor any subsequent Figure(s). Of course, however, the device 700 may beimplemented out in any desired environment. It should also be noted thatthe aforementioned definitions may apply during the present description.

In the context of the present description, a device with a backtouchinterface refers to a device with one or more backtouch sensors orbacktouch switches. In one embodiment, a device with a backtouchinterface may also include one or more other sensors and/or buttons,including but not limited to cameras, hardware buttons, and/or any othertype of device or control. A device with a backtouch interface may alsobe referred to as a backtouch-enabled device.

Within the context of the present description, a backtouch sensor refersto an interaction surface located on a device which has reduced uservisibility while the device is being operated, because it is obscured bythe device itself. For example, in one embodiment, a backtouch sensormay be located on the back of the device, facing away from the user asthey look at a display on the front side. A backtouch sensor may resultin a better user interface experience since the user is able to interactwith the device without obscuring the front display with an implement ofinteraction.

Additional embodiments may be described using the terms ‘front’ and‘back’, but a backtouch-enabled device is not limited to those havingparallel surfaces. Within the context of the present description, theterms ‘front’ or ‘front surface’ and ‘back’ or ‘back surface’ refer toany two surfaces of any portion, piece, section, slice, component, part,and/or face of a device or its parts.

In various embodiments, a backtouch interface may also be a display. Forexample, in one embodiment, a device may have high-resolutiontouchscreens on the front and back. In another embodiment of amulti-display, backtouch-enabled device, the front face may be ahigh-resolution touchscreen and the back face may be a low-resolutiontouchscreen. As an option, one or more of the touch screens in theseembodiments may be black and white. In still another embodiment, thefront and back displays may utilized different display technologiesand/or different display properties. For example, in one embodiment, thefront display may be a high-resolution trans missive touchscreen and theback display may be a low-resolution reflective touchscreen.

As shown, device 700 is an example of one embodiment of abacktouch-enabled device, possessing a backtouch sensor 702 and adisplay 704. In various embodiments, the display 704 may also be aninteraction surface.

As previously defined, an interaction surface is a surface capable ofsensing touch, pressure, proximity, or any combination thereof. Invarious embodiments, a backtouch sensor may be capable of sensing one ormore of touch, pressure, or proximity.

For example, in one embodiment, a backtouch sensor may be a track pad.Within the context of the present description, a track pad is a touchsensitive pointing device which can detect the motion and position of animplement of interaction (e.g., user finger, stylus, etc.).

In various embodiments, a backtouch sensor may include a resistive touchsensor. In one embodiment, a resistive touch sensor is made up of twothin, conducting layers separated by a narrow gap. When an implement ofinteraction presses down on the outer layer, the two layers make contactat that point. A voltage may be applied across the upper layer, from topto bottom. The resistive touch sensor may act as a voltage divider; bymeasuring the output voltage on the lower layer, the vertical positionof the touch position may be sensed. Swapping the voltage to the sidesof the upper layer may allow the horizontal touch position to be sensed.

In various embodiments, a backtouch sensor may include a capacitivetouch sensor. In one embodiment, a capacitive touch sensor is made oftwo layers of parallel conductive lines, separated by an insulator. Thelayers are arranged such that the conductive lines are perpendicular.When an implement of interaction is placed over the conducting lines,there is a change in capacitance. A high frequency signal may be appliedto pairs of conducting lines; the resulting current that passes betweenthe conducting lings is proportional to the capacitance between theconducting lines. This current may be used to sense the touch orproximity of an implement of interaction. A capacitive touch sensor maybe capable of detecting more than one contact point or contact area.

The backtouch-enabled device shown in FIG. 7 is one exemplaryembodiment. The geometry of a backtouch-enabled device need not beconfined to parallel surfaces, with a distinct front and back. Forexample, in one embodiment, the device may have fold-out sections withinteraction surfaces which become backtouch interfaces once the sectionsare folded out. In another embodiment, the backtouch-enabled device maybe composed of curved parts, multiple parts, or complex plan form parts.In still another embodiment, the backtouch-enabled device may not berectilinear in any outline and/or cross section. In yet anotherembodiment, the device may have one or more curved or non-planarsurfaces, including but not limited to surfaces which are concave orconvex. In some embodiments, the device may have one or more surfaceswhich are rigid or hard. In other embodiments, the device may have oneor more surfaces which are soft or flexible. In still other embodiments,the device may change shape, depending on the mode of operation (e.g.,slide-out hardware keyboard, plug-in modules, etc.).

In one embodiment, a backtouch-enabled device may have one or morebacktouch sensors located on plane(s) parallel to the plane of adisplay. For example, see device 700. In another embodiment, abacktouch-enabled device may have one or more backtouch sensors locatedon plane(s) that are at an angle to the plane of a display.

In one embodiment, a backtouch sensor may be located on a plane which iscompletely obscured from the display. In another embodiment, a backtouchsensor may be located on a plane which is partially obscured from thedisplay. For example, a backtouch sensor may be located on the back sideof a transparent or translucent display.

In one embodiment, a backtouch interface is an interaction surface whichmay be made up of one or more touch sensors, one or more pressuresensors, one or more proximity sensors, one or more switches, or anycombination of one or more such sensors or switches. In anotherembodiment, the switches which are part of a backtouch interface may bereal or virtual, displayed or mechanical, soft or hard, or anycombination of these properties.

In various embodiments, gestures and interactions described in terms ofa backtouch interface may also be performed on sidetouch (left and rightsides of a device) and captouch (top and bottom sides of a device)interfaces.

FIG. 8 shows a method 800 for providing feedback to the user of abacktouch interface, in accordance with one embodiment. As an option,the method 800 may be implemented in the context of the architecture andenvironment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the method 800 may be implemented in any desiredenvironment. The aforementioned definitions may apply during the presentdescription.

As shown, it is determined whether the backtouch interface is enabled.See determination 802.

Within the context of the present description, an enabled interface orsurface refers to an interface or surface which is not disabled. Withinthe context of the present description, a disabled interface or surfacerefers to an interface or surface which is not passing user input to anyprocess, system, application, or routine. In one embodiment, a disabledinterface may continue to sense user input, even though it is not used.In another embodiment, a disabled interface may be able to recognize apredefined form or type of user input which then places the interface inan enabled state. As a specific example, in one embodiment, a disabledbacktouch interface may not be used to make a selection until it detectsa predefined pattern of increases and decreases of contact pressure. Inthis way, interfaces may be disabled to avoid unwanted input, and easilyenabled when desired.

It is important to note that in various embodiments, an interface orsurface may be enabled with respect to one type of user input, anddisabled with respect to another type of user input. For example, it maybe possible for an interaction surface to be enabled with respect totouch interactions, and disabled with respect to contact pressure orproximity.

In various embodiments, a backtouch interface may be enabled in responseto user input. For example, in one embodiment, a backtouch interface maybe enabled in response to a predefined gesture performed on aninteraction surface receptive to touch. In another embodiment, abacktouch interface may be enabled in response to a predefined patternof increases and decreases of contact pressure exerted upon aninteraction surface receptive to pressure. In yet another embodiment, abacktouch interface may be enabled by a predefined series of taps orimpacts with the device. As an option, the taps or impacts may bedetected by an accelerometer. In still another embodiment, a backtouchinterface may be enabled by toggling a hardware or software control(e.g., button, switch, etc.).

In various embodiments, a backtouch interface may be enabled withoutspecific user input. For example, in one embodiment, a backtouchinterface may be enabled by a backtouch-enabled application. In anotherembodiment, a backtouch interface may be enabled when the deviceorientation is within a predefined range. In yet another embodiment, abacktouch interface may always be enabled.

If it is determined that the backtouch interface is enabled, then it isdetermined whether there is an implement of interaction in proximity ofthe backtouch interface. See determination 804.

In various embodiments, there may be a threshold proximity that may beachieved before determination 804 is satisfied. In one embodiment, auser may define the threshold proximity. In another embodiment, thethreshold proximity may be predefined within the operating system. Instill another embodiment, the threshold proximity may be predefined on aper-application basis.

If it is determined that an implement of interaction is in proximity tothe backtouch interface, a visual indication of the proximity isdisplayed. See operation 806.

In various embodiments, the location of the implement of interaction inproximity to the backtouch interface may be indicated to the user. Forexample, in some embodiments, a point associated with the location ofthe implement may be displayed. In one embodiment, the point may be thecentroid of the area with the highest proximity value. As an option, thepoint may be represented as a circle, a crosshair, and/or any othershape or icon.

In one embodiment, the point associated with the location of theimplement may be displayed using a predefined color. As an option, theuser may be able to select the color used. In yet another embodiment,the point may be displayed by inverting the preexisting contents of thedisplay located at that point.

In various embodiments, an area associated with the location of theimplement may be displayed. For example, in one embodiment, the area maybe the area with proximity values above a preset threshold value. Inanother embodiment, the area may be a circle centered upon the centroidof maximum proximity values. As an option, the size of the circle may besimilar to a fingertip.

In one embodiment, the area associated with the location of theimplement may be displayed with colored shading. As an option, the usermay preset the color of the shading. In another embodiment, the area maybe indicated by increasing the color brightness (e.g., moving towardswhite within a color space, etc.) of the display content within thearea. In yet another embodiment, the area may be displayed by reducingthe color brightness (e.g., moving towards black within a color space,etc.) of the display content outside the area. As an option, the areamay be displayed with a sharp boundary, or with a softened boundary,creating a glow effect.

In various embodiments, the degree of proximity of the implement ofinteraction to the backtouch interface may be indicated to the user. Forexample, in one embodiment, the color of a point or area being displayedmay be given a degree of transparency dependent upon the proximityvalues, allowing the original display content to be viewed. As anoption, the proximity value may be averaged over the area, and a singletransparency value given to the color applied. In another embodiment,the color of the content displayed within the area may be given a colorbrightness based upon the proximity, such that the area is white rightbefore contact is made. In yet another embodiment, the color of thecontent displayed outside the area may be given a color brightness basedupon an inverse relationship with the proximity, such that all but thearea is black right before contact is made.

As shown, it is determined if an implement of interaction is in contactwith the backtouch interface. See determination 808. If it is determinedthat there is no contact, the proximity may continue to be determinedand displayed.

If it is determined that an implement of interaction is in contact withthe backtouch interface, a visual indication of the contact isdisplayed. See operation 810.

In various embodiments, a visual indication of contact with a backtouchinterface may differ from a visual indication of contact with a frontdisplay, where the contact point and area is usually obscured by animplement of interaction. For example, in one embodiment, the contactpoint may be displayed, instead of or in addition to the contact area.In another embodiment, the visual representation of the interior of thecontact area may be colored. In yet another embodiment, the contact areamay be represented by an iconic version of a fingerprint. In stillanother embodiment, the contact area may be distorted so as to appear tobulge out of the display. As an option, this distortion may increase asa function of contact pressure.

As shown, once the user has been given feedback regarding contact withthe backtouch interface, further user interaction is handled by adifferent routine. See operation 8. For example, methods 4 or 6 may beimplemented at this point, utilizing backtouch contact pressure andcontact point to define a selection.

FIG. 9 shows a pressure-sensitive user interface 900 for making aselection using a backtouch interface, in accordance with oneembodiment. As an option, the user interface 900 may be implemented inthe context of the architecture and environment of the previous Figuresor any subsequent Figure(s). Of course, however, the user interface 900may be implemented in any desired environment. The aforementioneddefinitions may apply during the present description.

As shown, the user interface 900 may be utilized in making a selectionbased in part on pressure exerted by the user upon a backtouchinterface. For example, in one embodiment, a user's finger 902 may exerta small amount of force over contact area 904, which is centered oncontact point 906. In one embodiment, contact area 904 and contact point906 may be displayed on top of the content already being displayed, toassist the user in making contact at the desired location. In anotherembodiment, the contact point 906 may be displayed as a symbol, such asa plus sign, which may be rotated to an orientation estimated to matchthat of the contacting finger. As an option, the finger orientation maybe estimated using the size and shape of the contact area, detectedlocation of other fingers, and/or any other user input or observableproperties.

If the contact pressure level is sufficient, then a selection area 908having a selection boundary 910 and a secondary boundary 912 (indicatinguncertainty related to the contact area) is calculated and displayed. Asan option, the selection may be defined using method 4 or 6, or anyother method of defining a selection based upon contact pressure.

FIG. 10 shows a user interface 1000 for defining settings associatedwith a backtouch interface, in accordance with one embodiment. As anoption, the user interface 1000 may be implemented in the context of thearchitecture and environment of the previous Figures or any subsequentFigure(s). Of course, however, the user interface 1000 may beimplemented in any desired environment. The aforementioned definitionsmay apply during the present description.

In one embodiment, the user interface 1000 may include a plurality ofcheck boxes 1002 which represent various types of user interactionsdetectable by the backtouch interface. The types of interactions mayinclude, but are not limited to, pressure, touch, proximity, and/or anyother type of user interaction. Through these checkboxes, a user maylimit a backtouch interface to only certain types of interactions. As anoption, the user interface 1000 may only present checkboxes forinteraction types detectable by the particular backtouch interfaceassociated with the settings being defined.

In one embodiment, the user interface 1000 may include a plurality ofcheck boxes 1004 which represent various methods of enabling a backtouchinterface. As an option, in one embodiment, more than one method ofactivation may be selected.

In one embodiment, the collection of backtouch interface enablementmethods 1004 may include a checkbox 1006 which allows the interface tobe activated by a gesture. In one embodiment, the gesture may bepredefined within an application or operating system. In anotherembodiment, the user interface 1000 may include a button 1008 to allow auser to specify a gesture to activate the backtouch interface. As anoption, the user may be presented with an interface where they mayspecify the gesture by performing it. In yet another embodiment, theuser may choose from a plurality of predefined gestures.

In one embodiment, the collection of backtouch interface enablementmethods 1004 may include a checkbox 1010 which allows the interface tobe activated by a grip. In the context of the present description, agrip refers to the set of sensor data associated with a particularmanner of holding a device. The sensor data associated with a grip mayinclude, but is not limited to, points and areas of contact on one ormore interaction surfaces, device orientation, contact pressure levelsexerted in one or more contact areas, proximity data (e.g., proximity toportions of a users hand not in contact with the device, etc.), and/orany other sensor data.

In one embodiment, the backtouch interface-enabling grip may bepredefined within an application or operating system. In anotherembodiment, the user interface 1000 may include a button 1012 to allow auser to specify a grip to enable the backtouch interface. As an option,the user may be presented with an interface where they may specify thegrip by performing it. In yet another embodiment, the user may choosefrom a plurality of predefined grips.

In one embodiment, the collection of backtouch interface enablementmethods 1004 may include a checkbox 1014 which keeps the backtouchinterface enabled whenever the device is powered on, similar to aprimary touch screen, for example. In another embodiment, the collectionof backtouch interface enablement methods 1004 may include a checkbox1016 which keeps the backtouch interface disabled.

In one embodiment, the user interface 1000 may include a check box 1018which allows the criteria for backtouch interface enablement to be seton a per-application basis. As an option, check box 1018 may allow anyapplication to override the preferences set with the plurality of checkboxes 1004.

In one embodiment, the user interface 1000 may include a plurality ofcheck boxes 1020 which represent various methods of indicating that abacktouch interface is enabled. As an option, in one embodiment, morethan one indicator may be selected.

In one embodiment, the collection of indicator check boxes 1020 mayinclude a checkbox 1022 which indicates that the backtouch interface isenabled by displaying a colored border around the edge of a display. Inone embodiment, the colored border may be animated.

In one embodiment, the collection of indicator check boxes 1020 mayinclude a checkbox 1024 which indicates that the backtouch interface isenabled using an LED. In one embodiment, the LED may indicate theenabled backtouch interface through a specific color, with other colorsbeing reserved for indicating other device states. In anotherembodiment, the LED may pulse or flash when the backtouch interface isenabled.

In one embodiment, the collection of indicator check boxes 1020 mayinclude a checkbox 1026 which indicates that the backtouch interface isenabled by displaying a colored border around a status bar (e.g., aminimal bar common to most user interfaces, etc.). In one embodiment,the colored border may be animated.

In one embodiment, the collection of indicator check boxes 1020 mayinclude a checkbox 1028 which indicates that the backtouch interface isenabled by displaying an icon. In one embodiment, the icon may belocated within a status bar.

In one embodiment, the collection of indicator check boxes 1020 mayinclude a checkbox 1030 which indicates that the backtouch interface isenabled by changing the color of a status bar. In one embodiment, thecolor change may be animated.

In one embodiment, the collection of indicator check boxes 1020 mayinclude a checkbox 1032 which allows the backtouch interface to beenabled without any indication to the user. As an option, thispreference may be overridden by an application.

In various embodiments, the user interface 1000 may allow a user toconfigure the type and style of feedback provided while an enabledbacktouch interface is being used. For example, in one embodiment, theuser interface 70.0002.3-00 may include a button 1034 which allows auser to specify whether or not feedback is provided while the backtouchinterface is being used. As an option, this preference may be overriddenby applications (e.g., an application may be configured such that itprovides backtouch interface feedback independent of any systempreferences, etc.).

In one embodiment, the user interface 1000 may include a button 1036,which presents a user interface which allows a user to specify the styleof feedback provided when a backtouch interface is being used. Forexample, a user may configure the feedback provided when an implement ofinteraction is in proximity to, contact with, and/or exerting pressureon the backtouch interface.

In one embodiment, the user interface 1000 may include a button 1038,which allows a user to test the style parameters they defined usingbutton 1036. For example, in one embodiment, button 1038 may present auser interface where a user may experiment with a backtouch interface,observing the feedback styles they have configured. As an option, thisinterface may provide a quick way to reconfigure the feedback style.

In various embodiments, the user interface 1000 may allow a user toconfigure the sensitivity of a backtouch interface. In the context ofthe present description, the sensitivity of a backtouch interface refersto the threshold level of interaction (e.g., proximity, contact,pressure, etc.) which a backtouch interface may receive before treatingthe interaction as being intentionally made by a user. In this way,backtouch interactions incidental to device usage may be ignored, whileintentional backtouch user interactions may be acted upon.

In one embodiment, the user interface 70.0002.3-00 may include aplurality of checkboxes 1040 that represent a plurality of backtouchinterface sensitivity levels. The backtouch interface sensitivity levelsmay include, but are not limited to, predefined levels (e.g., “high”,“standard”, “low”, etc.), user defined levels, automatically definedlevels, and/or any other type of sensitivity level.

In one embodiment, the user interface 1000 may allow a user to specifythe sensitivity levels for particular aspects of a backtouch interface(e.g., proximity, contact, pressure, etc.). As an option, the userinterface may provide the user with the ability to save and load userdefined backtouch interface sensitivity profiles.

In the context of the present description, an interface sensitivityprofile refers to a collection of sensitivity parameters associated withvarious aspects of an interaction interface. The sensitivity parametersmay include, but are not limited to, an activation threshold, a maximumsignal beyond which interaction is ignored, sample rate(s), and/or anyother parameter which may be associated with an interaction interface.As an option, the sensitivity parameters may be specific to particulartypes of interaction (e.g., proximity, contact, pressure, etc.).

In the context of the present description, an activation thresholdrefers to a threshold signal below which interaction is ignored. Anactivation threshold may be set for different types of user interaction(e.g., pressure, contact, proximity, etc.). For example, in oneembodiment, an interaction surface may have a pressure activationthreshold of P, below which all pressure interactions are ignored.

It is important to recognize the distinction between activation andenablement. In various embodiments, activation serves as a filter ofincidental interactions, defining the weakest sensor signal which maynot be ignored. Enablement serves a similar purpose, to ignore unwantedinteractions; a disabled interface may not act upon any sensor signalsexcept those related to enabling the interface. In other words,activation filters sensor signals based on strength, while enablementfilters sensor signals based on the signal itself.

In one embodiment, the plurality of checkboxes 1040 may include an“automatic” checkbox, representing a backtouch interface sensitivityprofile automatically determined by the device. As an option, if anautomatic sensitivity profile has not been created, the user may bepresented with the option of initiating the process of automaticallydetermining an optimal backtouch interface sensitivity profile.

In one embodiment, the user interface 1000 may include a button 1042which allows a user to initiate the process of automatically determiningan optimal backtouch interface sensitivity profile. In the context ofthe present description, an optimal interface sensitivity profile refersto a sensitivity profile which would allow an interface to remainenabled all the time, with minimal accidental inputs. In one embodiment,the process of automatically determining an optimal backtouch interfacesensitivity profile may include gathering data over a predefined amountof time. As an option, the time remaining may be displayed in userinterface 1000. During this learning period, the backtouch enablementpreferences specified in checkboxes 1004 may be overridden, and insteadthe user is required to enable the backtouch interface with a specificmethod, chosen such that accidental enablement is highly unlikely (e.g.,two step activation using gestures, hardware switch with on-screenconfirmation, etc.). This facilitates separating intentionalinteractions from incidental interactions. Once enabled, the backtouchinterface may remain enabled for a short period of time. During thelearning period, the device may gather data, including but not limitedto sensor data from the backtouch interface, changes in orientation,backtouch interface enablements, and/or any other data related to use ofthe device. Once the learning period has elapsed, the gathered data maybe used to estimate the levels of meaningless, incidental backtouchinteraction, such as interaction due to holding the device. As anoption, in another embodiment, the user may be able to specify thelength of the learning period. In yet another embodiment, the user maybe able to specify desired accuracy of the sensitivity level, balancingthe reduction of unwanted interactions with a possible increase inintentional interactions being missed.

In one embodiment, the user interface 1000 may include a button 1044which allows a user to test the specified sensitivity settings. Forexample, in one embodiment, button 1044 may present a user interfacewhich provides feedback regarding interactions with the backtouchinterface. As an option, the testing user interface may utilize adefault set of backtouch feedback settings, if the user had previouslyturned feedback off. In another embodiment, button 1044 may activate abacktouch interface, and present feedback to the user within userinterface 1000. As an option, user interface 1000 may ignore any inputreceived from the backtouch interface, only provide feedback related tothe user interactions. In this way, a user may test the settings withthe backtouch interface without accidentally interacting with anycheckboxes, buttons, or other element of user interface 1000.

In various embodiments, the interfaces of FIG. 10, as well as any otherprevious or subsequent interfaces, may take the form of webpagesdisplayed utilizing a web browser on any desired computer, handhelddevice, etc. In such case, any of the parameters or other inputdisclosed herein may be entered without the use of the host device,whereby such parameters or other input (or derivatives thereof) may bepushed to the device for configuration/updating purposes.

FIG. 11 shows a user interface 1100 for defining settings associatedwith a pressure-sensitive interface, in accordance with one embodiment.As an option, the user interface 1100 may be implemented in the contextof the architecture and environment of the previous Figures or anysubsequent Figure(s). Of course, however, the user interface 1100 may beimplemented in any desired environment. The aforementioned definitionsmay apply during the present description.

In one embodiment, the user interface 1100 may include a checkbox 1102to allow the user to enable the pressure-receptive aspect of one or moreinteraction surfaces. In one embodiment, this checkbox may enable allpressure-receptive surfaces. In another embodiment, the user may be ableto specify which pressure-receptive surfaces shall be enabled. Invarious other embodiments, enablement of pressure-receptive surfaces maybe accomplished through user input outside of user interface 1100.Pressure-receptive surface enabling user input may include, but is notlimited to, gestures, software buttons, hardware buttons, accelerometerdata, contact pressure patterns, and/or any other form of user input.

In one embodiment, the user interface 1100 may include a plurality ofcheck boxes 1104 which allow a user to specify which types of feedbackto provide when the pressure-sensitive interface(s) is activated, if anyat all. For example, in one embodiment, the user may specify a soundwhich plays whenever the pressure-sensitive interface is activated. Inanother embodiment, the user may specify a form of visual feedback to begiven when the pressure-sensitive interface is activated. As an option,the user may select from a plurality of predefined forms of feedback.

In one embodiment, the user interface 1100 may include a checkbox 1106which allows a user to specify whether they want visual feedbackregarding contact pressure level. As previously described, contactpressure level may be visually represented in a number of ways,including, but not limited to, a color which is part of a two colorspectrum, a percentage, a unitless number, and/or any otherrepresentation of a value located within a finite range. In oneembodiment, user interface 1100 may allow a user to specify the type ofcontact pressure level feedback. As an option, a separate user interfacemay be presented to the user to define the form of the feedback.

In various embodiments, the user interface 1100 may be used to definethe pressure activation threshold. In the context of the presentdescription, a pressure activation threshold is the smallest contactpressure level which may not be ignored. In one embodiment, the currentpressure activation threshold level 1108 may be displayed within userinterface 1100. The current pressure activation threshold level may bedisplayed as a unitless number, a percentage of the maximum measurablecontact pressure level, a color, a scale, and/or any other method ofrepresenting a value located within a finite range.

In one embodiment, the user interface 1100 may include a button 1110which allows a user to manually specify the pressure activationthreshold level. In one embodiment, the user may be presented with aninterface where they may enter a specific value to be used as thepressure activation threshold. In another embodiment, the user may beprompted to exert the desired threshold pressure on a pressure-sensitiveinterface, confirming their selection by maintaining the desired contactpressure for a predefined amount of time. As an option, the user may beprompted to repeat this process more than one time, after which theresulting pressure levels may be averages. In yet another embodiment,the user may be given the chance to test the newly specified pressureactivation threshold level.

In one embodiment, the user interface 1100 may include a button 1112which resets the pressure activation threshold level to a predefined,default value. As an option, the user may be prompted to confirm thisaction before the default value is applied.

In one embodiment, the user interface 1100 may include a button 1114which initiates a process which determines an optimal pressureactivation threshold level. In the context of the present description,an optimal pressure activation threshold level refers to an activationthreshold which would allow an interface to remain enabled all the time,with minimal erroneous inputs. In one embodiment, the process ofautomatically determining an optimal pressure activation threshold levelmay include gathering data over a predefined amount of time. As anoption, the time remaining may be displayed in user interface 1100.

During this learning period, the pressure activation threshold maytemporarily be set to a level sufficiently high that an accidentalactivation is highly unlikely. This facilitates separating intentionalinteractions from incidental interactions. During the learning period,the device may gather data, including but not limited to sensor datafrom the pressure-sensitive interface, changes in orientation,pressure-sensitive interface activations, and/or any other data relatedto use of the device. Once the learning period has elapsed, the gathereddata may be used to estimate the levels of meaningless, incidentalpressure interaction, such as interaction due to holding the device. Asan option, in another embodiment, the user may be able to specify thelength of the learning period. In yet another embodiment, the user maybe able to specify desired accuracy of the pressure activation thresholdlevel optimization, balancing the reduction of unwanted interactionswith a possible increase in intentional interactions being missed.

In one embodiment, the user interface 1100 may display the amount oftime remaining in an ongoing learning period. See, for example, textfield 1116. In various embodiments, the time remaining in the learningperiod may be displayed in user interfaces other than 1100. Userinterfaces where the remaining time may be displayed include, but arenot limited to, a status bar, a contextual menu, a shortcut menu, apop-up interface adapted for managing various interaction interfaces,and/or any other user interface.

In one embodiment, the user interface 1100 may include a plurality ofcheckboxes 1118 which represent a plurality of forms of feedbackassociated with the automatic determination of an optimal pressureactivation threshold level. During the learning period, it may behelpful to provide the user with feedback every time thepressure-sensitive interface is activated. The forms of feedbackinclude, but are not limited to, a sound, vibration, screen flash,and/or any other form of feedback. In one embodiment, the feedbackassociated with the automatic determination of an optimal pressureactivation threshold level may override preferences set elsewhere. Inanother embodiment, the user may specify the parameters of these formsof feedback.

The user interface 1100 may be used to define and manage touch states.In one embodiment, a preset number of global touch states may bedefined, which the operating system and applications may make use of. Inanother embodiment, the touch states may be defined on a per-applicationbasis.

In one embodiment, the user interface 1100 may include a button 1120which presents the user with a user interface that facilitates thedefinition of touch states. As an option, the user may be able to selectfrom a plurality of predefined touch state definitions. Additionally,the user interface 1100 may display the currently defined touch states.See, for example, text field 1124. The touch states may be representedas a unitless number, a percentage of the range of allowable contactpressure levels, a color, and/or any other representation of a contactpressure level.

In one embodiment, the user interface 1100 may include a button 1122which allows the user to reset the touch state definitions to apredefined default definition. As an option, the user may be promptedfor confirmation before resetting the touch state definition to defaultvalues.

FIG. 12 shows a method 1200 for assisting a user in defining touchstates, in accordance with one embodiment. As an option, the method 1200may be implemented in the context of the architecture and environment ofthe previous Figures or any subsequent Figure(s). Of course, however,the method 1200 may be implemented in any desired environment. Theaforementioned definitions may apply during the present description.

As shown, the highest touch state is defined. See operation 1202. In oneembodiment, the highest touch state may be predefined within theoperating system. In another embodiment, the highest touch state may bespecified by the user, in the form of a contact pressure value.

In various embodiments, the highest touch state may be defined throughuser interaction with a pressure-sensitive interface. For example, inone embodiment, a user may be prompted to exert a level of contactpressure beyond which the highest touch state may be triggered. As anoption, the user may be prompted to exert this pressure multiple times,with the resulting values averaged. In another embodiment, the user maybe prompted to exert the highest contact pressure level which iscomfortable, and then defining the highest touch state using a contactpressure level slightly lower than that being exerted.

Once the highest touch state has been defined, the remaining spectrum ofcontact pressures is partitioned into the remaining touch states anddisplayed. See operation 1204.

In the context of the present description, the spectrum of contactpressures refers to the range of contact pressure levels a user mayexert to interact with the device. For example, in one embodiment, thelower end of a spectrum of contact pressures may be equivalent to thepressure activation threshold level. In various embodiments, there maybe multiple contact pressure spectrums defined. For example, in oneembodiment, there may exist a distinct spectrum of contact pressures foreach pressure-sensitive interaction surface. In another embodiment,there may exist a spectrum of contact pressures which is partitionedinto touch states (a touch state spectrum), and a different spectrum ofcontact pressures for use with contact pressure levels (a contactpressure level spectrum).

In one embodiment, the touch state spectrum may have extrema defined bythe user. As an option, the lower bound of the touch state spectrum maybe the same as pressure activation threshold level.

In one embodiment, the touch state spectrum may be partitioned such thatall touch states contain the same fraction of the touch state spectrum.In another embodiment, the touch state spectrum may be partitioned suchthat all touch states have equal portions of the touch state spectrumexcept for the highest touch state. In yet another embodiment, the touchstate spectrum may be partitioned such that the touch states areweighted, some containing larger fractions of the spectrum than others.As an option, the weight factors may be predefined or may be userdefinable.

In one embodiment, the partitioned touch state spectrum may be displayedas a geometric shape (e.g., circle, rectangle, etc.) which has beensegmented according to the touch state partitions. In anotherembodiment, the partitioned touch state spectrum may be displayed as anarray of percentages of the total spectrum. In yet another embodiment,the touch state spectrum may be displayed as an array of contactpressure levels associated with the boundaries of the partitions.

Once the touch state spectrum has been partitioned and displayed, theuser is given the opportunity to adjust the touch states. See operation1206.

In one embodiment, the user may adjust the contact pressure levelsassociated with the touch states by specifying the numerical values ofspecific contact pressure levels. In another embodiment, the user mayadjust the touch states by interacting with a graphical representationof the partitioned touch state spectrum. In yet another embodiment, theuser may adjust the touch states by defining new partitions using apressure-sensitive interface. As an option, the user may exert thedesired contact pressure level to set the boundaries of a touch state.

Once the touch states have been adjusted, the newly partitioned touchstate spectrum is verified. See operation 1208.

In one embodiment, the touch state spectrum may be verified by askingthe user to confirm their choice through a user interface. In anotherembodiment, the user may verify the touch state spectrum by utilizing itin a testing interface. As an option, the user may be given visualfeedback regarding the exact contact pressure level being exerted, inaddition to the current touch state.

FIG. 13 shows a user interface 1300 for assisting a user in definingtouch states, in accordance with one embodiment. As an option, the userinterface 1300 may be implemented in the context of the architecture andenvironment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the user interface 1300 may be implemented in anydesired environment. The aforementioned definitions may apply during thepresent description.

In one embodiment, the user interface 1300 may include a graphicalrepresentation 1302 of a touch state spectrum, hereinafter referred toas touch space spectrum rendering 1302. As another embodiment, the touchspace spectrum rendering 1302 may be colored with the spectrum of colorsbetween two colors representing spectrum extrema. As an option, the samecolors used to provide pressure dependent feedback to the user of apressure-sensitive interface may be used here.

The touch space spectrum rendering 1302 found in user interface 1300 maybe broken up into ranges of contact pressure representing touch states.In various embodiments, the touch space spectrum rendering may bepartitioned by one or more touch state dividers 1304. In one embodiment,the touch state dividers may simply be a line drawn between two touchstates. In another embodiment, the touch state dividers may also displaythe contact pressure level separating those two touch states.

In various embodiments, a plurality of touch states may be defined. Inone embodiment, the user may specify the number of touch states todefine. In another embodiment, the number of touch states may definedwithin the operating system. In still another embodiment, the number oftouch states may be defined on a per-application basis, by theapplications themselves or by the user (if so allowed by theapplication). In yet another embodiment, there may exist a set ofdefault touch states of a fixed number which may be overridden by adifferent set of touch states defined within an application.

In various embodiments, the touch space spectrum rendering 1302 found inuser interface 1300 may have a labeled scale. For example, in oneembodiment, the lower boundary 1306 of the lowest touch state (e.g., thetouch state associated with the lowest contact pressures) may bedisplayed. As an option, the lower boundary of the touch space spectrummay be equivalent to the pressure activation threshold, which the usermay define using, for example, user interface 1100.

In another embodiment, the upper boundary 1308 of the touch spacespectrum rendering may be displayed. As an option, upper boundary 1308may be automatically set to a value slightly higher than the lowerboundary of the highest touch state, since the highest touch state ismade up of all pressures above that lower boundary. In this way, thescale of the touch space spectrum rendering is not skewed due to thepotentially large range of contact pressures making up the highest touchstate. In yet another embodiment, the touch space spectrum rendering maychange in scale due to user interaction, with upper boundary 1308 beingautomatically updated.

In various embodiments, the touch state dividers 1304 found in the userinterface 1300 may possess touch state divider handles 1310 with which auser may adjust the partitioning of touch states. For example, in oneembodiment, a user may touch and drag a touch state divider handle tochange the value of the associated divider. In another embodiment, auser may select a touch state divider handle; after the touch statedivider handle has been selected, the divider may be assigned a valueequivalent to whatever contact pressure level the user exerts for apredefined amount of time. As a specific example, a user may select atouch state divider handle and then press on an interaction surface.Once the desired contact pressure level is reached, the user maintainsthe pressure for 3 seconds, after which the value of the touch statedivider is updated.

In one embodiment, the user interface 1300 may include a contactpressure gauge 1312 which reports the contact pressure level currentlybeing exerted, to assist the user in selecting a practical partitioningof the touch state spectrum. In another embodiment, the scale of thecontact pressure gauge may match that of touch state spectrum rendering1302. As an option, the scale of both contact pressure gauge 1312 andtouch state spectrum rendering 1302 may be set to accommodate the largerof two values: the current contact pressure level, or a value slightlyhigher than the lower boundary of the highest touch state.

In various embodiments, the touch state dividers 1304 found in the userinterface 1300 may each be associated with a plurality of icon buttons1314 which a user may use to lock a touch state divider at a particularvalue. In one embodiment, adjusting one touch state divider may causeall other unlocked dividers to shift such that the remaining portions ofthe touch state spectrum are partitioned as evenly as possible. As anoption, the user interface 1300 may include a button to unlock all touchstate dividers. In another embodiment, the user interface 1300 mayinclude a button 1316 which distributes all unlocked touch statedividers evenly throughout the remaining parts of the touch statespectrum.

In one embodiment, the user interface 1300 may include a button 1318which allows the user to establish the highest touch state boundarythrough pressure-based user input. In another embodiment, the user maybe prompted to establish this touch state boundary as soon as userinterface 1300 is displayed, in accordance with method 1200. In oneembodiment, the user may only specify the highest touch state, with theremaining touch state spectrum being evenly partitioned across the touchstates.

In one embodiment, the user interface 1300 may include a button 1320which resets all touch state boundaries to default values. In anotherembodiment, the highest touch state boundary may be preserved, only ableto be reset within the interface used to define it that may be displayedin response to activating button 1318.

In various embodiments, the user interface 1300 may include a button1322 which allows a user to test the currently defined touch states. Forexample, in one embodiment, a user may be asked to achieve various touchstates, and maintain them for a certain period of time. In anotherembodiment, the user may be presented with an interface similar to 1300,but where the touch state spectrum rendering 1302 and the contactpressure gauge 1312 are more predominantly displayed. As an option, asound may be played every time a touch state boundary is crossed.

FIG. 14 shows a user interface 1400 for indicating that a backtouchand/or pressure-sensitive interface is activated, in accordance with oneembodiment. As an option, the user interface 1400 may be implemented inthe context of the architecture and environment of the previous Figuresor any subsequent Figure(s). Of course, however, the user interface 1400may be implemented in any desired environment. The aforementioneddefinitions may apply during the present description.

In one embodiment, the user interface 1400 may include one or more icons1402 to indicate that a backtouch and/or pressure-sensitive interfacehas been activated. As an option, the icons may also indicate whether aninterface is enabled. For example, an icon may only be visible if theinterface is enabled, and only in color if the interface is activated.In another embodiment, the icons may have a color which depends upon thecontact pressure level currently being exerted on that particularinterface.

In various embodiments, the user interface 1400 may include a status bar1404 which provides the user feedback regarding various devicefunctions, in addition to other information, such as the date and/ortime. The status bar itself may be used to indicate whether a backtouchand/or pressure-sensitive interface has been activated. For example, inone embodiment, the status bar may have a shading color which dependsupon the contact pressure level currently being exerted on an activatedinterface. This may be done in conjunction with displaying an icon 1402to indicate which interface has been activated. In another embodiment,the change in color may be restricted to just the border 1406 of thestatus bar. In yet another embodiment, the type of interface which hasbeen activated may be indicated through an animation routine, including,but not limited to, a pulsing of the border, a cyclical variation oftransparency of the status bar shading, “marching ants” along the statusbar border, and/or any other animation routine.

In one embodiment, the status bar 1404 within the user interface 1400may include one or more items of textual information 1408. The items oftextual information may include, but are not limited to, date, time,network type, battery level, other device or application statusinformation, and/or any other type of textual information.

In one embodiment, the activation of a backtouch and/orpressure-sensitive interface may be indicated through the presentationproperties of the textual information 1408. Presentation properties fortextual information which may be altered to indicate the activation ofan interface include, but are not limited to, font, style, size, color,animation routine (e.g., flashing text, cycling colors, etc.), and/orany other type of presentation property. In another embodiment,activation of a backtouch and/or pressure-sensitive interface may beindicated by temporarily replacing textual information 1408 with amessage, which may include, but is not limited to, the identity of theactivated interface.

In one embodiment, the user interface 1400 may indicate the activationof a backtouch and/or pressure-sensitive interface by displaying aborder 1410 around the display. As an option, border 1410 may changecolor depending upon the current contact pressure level.

FIG. 15 shows a user interface 1500 for defining a backtouch feedbackstyle, in accordance with one embodiment. As an option, the userinterface 1500 may be implemented in the context of the architecture andenvironment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the user interface 1500 may be implemented in anydesired environment. The aforementioned definitions may apply during thepresent description.

When interacting with a backtouch interface, it may or may not beimportant to provide the user with some form of feedback regarding thelocation and/or activity of their chosen implement of interaction.Providing interaction feedback allows the user to interact with thedevice using an interaction surface they may not be able to see.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1502 which represent various types of feedback which may beprovided as an implement of interaction is in proximity to the backtouchinterface. The types of feedback may include, but are not limited to,visual (e.g., screen flashes, status bar icons, iconic depictions of thelocation of the implement, etc.), sound, vibration, and/or any otherform of feedback. In another embodiment, one or more of these types offeedback may be configured by the user. For example, in one embodiment,the user may select a sound to be played whenever an implement ofinteraction is in proximity to the backtouch interface. In yet anotherembodiment, the feedback may be limited to only those instances wherethe proximity to the backtouch interface appears intentional, ratherthan incidental. As a specific example, in one embodiment, feedbackmight be given for a fingertip, but not for a palm which is in proximityto the backtouch interface due to the user's grip.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1504 which represent various types of visual feedback thatmay indicate that an implement of interaction is in proximity to abacktouch interface. The types of visual feedback include, but are notlimited to, graphical representation of probable implement location,status bar icon, screen flash, and/or any other type of visual feedback.

In various embodiments, a backtouch interface may be able to estimatethe location of an implement of interaction in proximity to thebacktouch interaction surface. This information can be used to provideuseful feedback to the user. For example, in one embodiment, a pointassociated with the location may be displayed. As an option, the pointmay be the centroid of the area with the highest proximity value withina predefine threshold. In another embodiment, the point may be replacedor combined with an icon, shape, or symbol.

In another embodiment, the user may be provided with proximity feedbackin the form of a visual representation of the proximity data receivedfrom the backtouch interface. As an option, the proximity values may bescaled such that the visual representation has the appearance of a glow,centered on the estimated location of the implement.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1506 which represent various styles of visual proximityfeedback. The styles include, but are not limited to, dynamic coloring,the feedback described in conjunction with operation 806 of method 800,and/or any other type or style of visual feedback. In the context of thepresent description, dynamic coloring refers to coloring which varies asa function of proximity to the backtouch interface. For example, in oneembodiment, the color of the visual proximity feedback may vary betweentwo colors which represent the least discernable proximity and thegreatest proximity before contact. As an option, the colors may includea transparency factor, so the visual feedback does not obstruct displaycontents any more than necessary.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1508 which represent various types of feedback which may beprovided as an implement of interaction comes in contact with thebacktouch interface. The types of feedback may include, but are notlimited to, visual (e.g., screen flashes, status bar icons, iconicdepictions of the location of the implement, etc.), sound, vibration,and/or any other form of feedback. In another embodiment, one or more ofthese types of feedback may be configured by the user. For example, inone embodiment, the user may select a sound to be played whenever animplement of interaction makes contact with the backtouch interface. Inyet another embodiment, the feedback may be limited to only thoseinstances where the contact with the backtouch interface is estimated tobe intentional, rather than incidental. As a specific example, in oneembodiment, feedback might be given for contact with a fingertip, butnot for a palm which is in contact with the backtouch interface due tothe user's grip.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1510 which represent various types of visual feedbackindicating contact with the backtouch interface. The types of visualfeedback include, but are not limited to, graphical representations ofcontact location and extent (e.g., contact point, contact area, etc.), astatus bar icon, screen flash, and/or any other type of visual feedback,including those described in other embodiments.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1512 which cause the visual feedback indicating contact withthe backtouch interface to fade after a set amount of time. In anotherembodiment, the user may specify the amount of time before fadingbegins, how quickly the fade occurs, and/or the limits of the fade(e.g., completely disappear, fade to 70% transparency, etc.). As anoption, the fading of the visual feedback may be reversed if theimplement of interaction moves beyond a preset threshold while still incontact with the backtouch interface.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1514 which allow the user to specify the style of visualfeedback associated with making contact with the backtouch interface.The styles may include, but are not limited to, shading of a contactarea, line style of the border of a contact area, animation routine,and/or any other style aspect of visual feedback, including thosedescribed in other embodiments.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1516 which represent various types of feedback which may beprovided as an implement of interaction exerts pressure on the backtouchinterface. The types of feedback may include, but are not limited to,visual (e.g., screen flashes, status bar icons, iconic depictions of thecontact pressure of the implement, etc.), sound, vibration, and/or anyother form of feedback. In another embodiment, one or more of thesetypes of feedback may be configured by the user. For example, in oneembodiment, the user may select a sound to be played whenever animplement of interaction exceeds a predefined contact pressure levelwith the backtouch interface. In another embodiment, the sound may playwhenever there is a change in touch state. In yet another embodiment,the feedback may be limited to only those instances where the contactpressure on the backtouch interface is estimated to be intentional,rather than incidental. As a specific example, in one embodiment,feedback might be given for a finger press, but not for a palm squeezeincidental to the user's grip.

In one embodiment, the user interface 1500 may include buttons 1518which allow the user to specify the colors which represent the extremaof measurable contact pressure levels. As an option, the colors may bespecified with a transparency value.

In one embodiment, the user interface 1500 may include a plurality ofcheckboxes 1520 which represent various venues for presenting visualfeedback based upon the current contact pressure level. The venues forpressure-related visual feedback include, but are not limited to, anarea equivalent to or based upon the contact area, the contact point,the border of the display, the status bar, and/or any other type orexample of visual feedback, including those described in otherembodiments.

In one embodiment, the user interface 7.002.8-00 may include a button1522 which returns all settings defined within user interface 7.002.8-00to predefined default values. As an option, the user may be prompted toconfirm the reset before restoring the default values.

In one embodiment, the user interface 7.002.8-00 may include buttons1524 which allow a user to save and load collections of backtouchfeedback settings. As an option, the user may be prompted to confirmloading a new collection of settings before overwriting the currentcollection.

In one embodiment, the user interface 1500 may include a button 1526which allows a user to test the current backtouch feedback stylesettings. In one embodiment, button 1526 may enable the backtouchinterface (if not already enabled) and allow the user to experience thecurrent backtouch feedback style without being able to interact withuser interface 1500 through the backtouch interface. In other words, theuser may be able to expose the backtouch interface to a range ofproximity, contact, and pressure interactions without accidentallychanging any of the settings found within 1500.

In another embodiment, button 1526 may present to the user a userinterface which allows the user to experience the current backtouchfeedback style settings within a variety of simulated scenarios. Thesimulated scenarios may include, but are not limited to, web browsing,photo viewing, an application launcher, an eBook, word processing,and/or any other common use scenario. As an option, the simulated usescenarios may be defined such that the user is able to experience thecurrent feedback style in a wide range of color schemes, subject matter,degrees of screen clutter, etc.

As a specific example of a backtouch feedback style collection in use,in one embodiment, a user may configure the backtouch interface throughuser interface 1500 such that having a finger in proximity to thebacktouch interface causes a faint blue glow to appear on the display,over the location of the finger. The blue glow becomes brighter as thedistance between the finger and the backtouch interface decreases, untilcontact is made. Upon contact, the display shows a small plus sign atthe contact point and a thin “marching ants” border around the contactarea. The contact area is not shaded. As the user increases contactpressure, the contact area is shaded red, which becomes more opaque asthe pressure increases.

FIG. 16 shows an alternative method 1600 for defining a selection madewithin a user interface based in part on contact pressure, in accordancewith one embodiment. As an option, the method 1600 may be implemented inthe context of the architecture and environment of the previous Figuresor any subsequent Figure(s). Of course, however, the method 1600 may becarried out in any desired environment. It should also be noted that theaforementioned definitions may apply during the present description.

As shown, it is determined if a touch event has occurred. Seedetermination 1602.

In the context of the present description, a touch event refers to anevent in which an implement of interaction comes into contact with aninteraction surface. For example, in one embodiment, pressing on apressure-sensitive backtouch interface with a finger may be a touchevent. Another example may be making contact with a touch-sensitivedisplay with a stylus.

If it is determined that a touch event has occurred, then the touchevent attributes are determined. See operation 1604.

In the context of the present description, touch event attributes referto one or more measurable aspects of the user interaction which resultedin a touch event. The measurable aspects may include, but are notlimited to, touch state, contact area, contact point, contact pressurelevel, pressure uncertainty, touch uncertainty, and/or any othermeasurable aspect of user interaction.

As shown, it is determined whether the system is in a selection mode.See determination 1606.

In the context of the present description, a selection mode refers to asystem state where a user may create or modify a selection in a display.In various embodiments, a selection mode may be represented by a systemflag. Examples of when a system may be in a selection mode include, butare not limited to, instances where a selection already exists,instances where a user has indicated a desire to create a selection.

In various embodiments, a system may be placed in a selection modethrough user input. For example, in one embodiment, the user mayactivate a selection mode by performing a predefined gesture on aninteraction surface. In another embodiment, a user may activate aselection mode by exerting contact pressure on an interaction surfacefor a sufficient amount of time, the contact pressure exceeding apredefined threshold.

If the system is in a selection mode, then a selection is created and/ormodified as a function of the touch event attributes, then displayed.See operation 1608.

In one embodiment, the selection may be created, modified, and/ordisplayed using one or more selection functions. In another embodiment,a display function may be applied in addition to a selection function,to display the selection.

In the context of the present description, a display function refers toa function of one or more inputs which determines one or more propertiesof a display. Properties of a display may include, but are not limitedto, color values for individual pixels, brightness of a displaybacklight or portions of a backlight, and/or any other properties of adisplay. Display functions may apply to an entire display and/ormultiple displays.

In one embodiment, the selection may be displayed with a secondaryboundary representing the uncertainty in the selection. As a specificexample, there may be displayed a small, pale green tinged transparentcircle to show the area that the device is certain the user selected anda surrounding pale-red tinged transparent area (a secondary boundary)representing the area where the device thinks the user may have tried toselect, but is not certain.

Operation 1608 may continue to be performed, updating the selection witheach iteration, until there is a change in the touch state. Seedetermination 1614.

If it is determined in 1606 that the system is not in a selection mode,then it is determined if a gesture has been detected. See determination1610. In one embodiment, a user may be given feedback when a gesture isdetected. Possible feedback may include, but is not limited to, sound,flashing display, appearance of an icon, a colored border on thedisplay, and/or any other form of user feedback.

If a gesture has been detected, then an associated action is performed.See operation 1612. In one embodiment, any gesture may be mapped to anycommand or operation of the device. In another embodiment, a user may beprovided feedback when the action is performed. Possible feedback mayinclude, but is not limited to, sound, flashing display, appearance ofan icon, a colored border on the display, and/or any other form of userfeedback.

A gesture may be associated with a variety of different actions. Theseactions may include, but are not limited to, scrolling a display or userinterface element, zooming in or out, modifying the display brightness,and/or any other action. With respect to making or modifying a selectionthrough method 1600, it is important to note that, in one embodiment, agesture may be associated with placing the system in a selection mode.

FIG. 17 shows a user interface 1700 for performing operations on aselection, in accordance with one embodiment. As an option, the userinterface 1700 may be implemented in the context of the architecture andenvironment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the user interface 1700 may be implemented in anydesired environment. The aforementioned definitions may apply during thepresent description.

After selecting an object, using methods, interfaces, and embodimentsdescribed above or others, a user may wish to perform an operation uponthe object. Providing easily accessible methods to perform operations ona selected object may enhance the user experience. The availability ofmultiple interaction surfaces and/or multiple sensitivities increasesthe number of simple, intuitive ways a user may interact with thedevice.

In various embodiments, once a selection is static, a user may performoperations on the selected object. Possible operations include, but arenot limited to, replication operations (i.e. copy, cut, paste, etc.),relocation operations, text-specific operations, image-specificoperations, cross-application operations, and/or any other type ofoperation.

In various embodiments, a user may perform replication operations on aselected object through simple gestures and other types of user input.For example, in one embodiment, a user may copy a selected object to aclipboard (i.e. temporary storage, etc.) by pressing sharply on apressure-sensitive front interaction surface, on top of the selectedobject. In another embodiment, a user may cut a selected object bypinching the object (i.e. applying contact pressure on the objectthrough a front and back interaction surface), then applying greatercontact pressure on the front interaction surface than the backinteraction surface. In yet another embodiment, a user may perform apaste operation, replacing the selected object with the contents of aclipboard, by pinching the selected object, then applying greatercontact pressure on the back interaction surface than the frontinteraction surface. Of course, in other embodiments, these operationsand those following may be assigned to any other gesture, depending uponthe location, number, and sensing ability of the host device'sinteraction surface(s).

In various embodiments, a user may perform relocation operations on aselected object through simple gestures and other types of user input.For example, in one embodiment, a user may move a selected object bymaking contact with the object on an interaction surface (front or back)and dragging the contact point to relocate the object. As an option, ifthe selection was made within a sequential or ordered environment (i.e.word processing document, etc.), the selected object may becometransparent or translucent while being relocated, so the user may bettersee the insertion point (i.e. cursor, etc.). As shown in this example,the same dragging gesture may have different effects, depending on thestate of the selection (i.e. static vs. active, etc.).

In various embodiments, a user may perform text-specific operations on aselected text object using simple gestures and other types of userinput. See, for example, user interface 1700 in FIG. 17. As shown, aselection 1702 has been made within a block of text 1704. In accordancewith one embodiment, a user has temporarily magnified the selected textby bringing a finger into proximity to a back interaction surface, saidproximity localized in an area 1706 on the selection. As an option, thedegree of magnification may increase as the finger is brought closer tothe interaction surface.

Another example of a text-specific operation is data detection, inaccordance with one embodiment. For example, in one embodiment, a usermay perform a data detection operation on a selected text object bypressing on the selection with two fingers through a back interactionsurface. In various embodiments, the data detection operation mayhighlight detectable information found within the selected textincluding, but not limited to, email addresses, phone numbers, dates andtimes, addresses, web addresses, and/or any other form of information.In another embodiment, the data detection may only highlight types ofinformation which may be further acted upon by the device, such thatafter detection, a user may initiation further action by touching thehighlighted information. For example, in one embodiment, touching ahighlighted phone number may dial the number, touching a highlightedaddress may activate a navigation application, touching a date maycreate an appointment in a calendar application, and so forth.

Other examples of text-specific operations may include, but are notlimited to, highlighting, modifying the style (i.e. bold, italic,underline, strikethrough, color, shadow, etc.), modifying the font,modifying the font size, translating to a different language, and/or anyother operation which may be performed on text. In one embodiment, auser may perform a gesture, such as a two finger, double press on theselected text, to bring up a menu of different text operations (or anyother operation in the present description). In another embodiment, eachoperation may be assigned a different gesture.

In various embodiments, a user may perform image-specific operations ona selected object through simple gestures intuitively related to theoperation being performed. For example, in one embodiment, a user mayapply facial recognition and/or red eye removal by simply tapping (on afront or back interaction surface) on peoples faces within theselection. In another embodiment, a user may resize the selected objectusing the two finger pinch-to-zoom gesture. In still another embodiment,a user may rotate the selected object by making two points of contact onthe object, then twisting the contacting hand. In yet anotherembodiment, a user may warp or distort a selected object by applyingdifferent levels of contact pressure to the selection via a front orback interaction surface. As an option, a front interaction may causepuckering, while a back interaction may cause bulging.

In various embodiments, a user may perform cross-application operationson a selected object through simple gestures. Cross-applicationoperations may include, but are not limited to, placing the selectedobject in a new email or SMS message, placing the selected object in asocial network posting, sending the object to an application capable ofperforming further operations (i.e. image editing application, wordprocessing application, etc.), and/or any other operation which mayinvolve another application. In other embodiments, a user may bepresented with application-specific operations in a menu, in addition tocross-application operations, upon performing a predefined gesture.

FIG. 18 shows a method 1800 for utilizing contact pressure-basedgestures, in accordance with one embodiment. As an option, the method1800 may be implemented in the context of the architecture andenvironment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the method 1800 may be carried out in any desiredenvironment. It should also be noted that the aforementioned definitionsmay apply during the present description.

As shown, it is determined if a touch event has occurred. Seedetermination 1802.

If it is determined that a touch event has occurred, then the initialtouch event attributes are determined. See operation 1804.

As shown, the gesture is identified from gesture input. See operation1806.

In the context of the present description, gesture input refers to thecollection of inputs, flags, and signals by which a gesture isidentified and parameterized. For example, in one embodiment, atwo-finger pinch gesture may be identified by two contact pointscombined with their motion with respect to each other, and parameterizedby the extent of the motion. Possible gesture inputs may include, butare not limited to, touch event attributes (both initial and over time),system and/or application flags, switches, buttons, states, sensor data,and/or any other possible input.

For example, in one embodiment, a gesture may be made up of one or morecontact points on an interaction surface, each associated with adifferent contact pressure level.

In various embodiments, a gesture may be identified from gesture input.Some gestures may be able to be identified solely from initial touchevent attributes. Other gestures may only be identified after thegesture has been performed for some period of time. As a specificexample, a two finger pinch gesture and a two finger swipe areindistinguishable based solely on initial touch event attributes.However, once the swipe or pinch motion has begun, the gestures areimmediately distinguished from each other.

In various embodiments, gestures may include one or more contactpressures being exerted upon an interaction surface. In someembodiments, pressure may be used to distinguish between two gestures.For example, in one embodiment, two gestures involving a two fingerpinch on the front display and one finger contact with the backtouchinterface may be defined based on the contact pressure level exerted onthe back touch interface. In other embodiments, pressure may be used tospecify one or more dimensions of the operation linked to a gesture. Forexample, in one embodiment, a swipe gesture to control scrolling of atext field may use contact pressure to determine the speed of thescrolling (e.g., higher pressure yields faster scrolling, etc.). Instill other embodiments, contact pressure may be used to both identifyas well as parameterize a gesture.

Once the gesture has been identified, the corresponding operation isperformed. See operation 1808.

In various embodiments, a gesture may be associated with themodification of one or more device audio settings. For example, in oneembodiment, a user may adjust the device volume by applying contactpressure to a back interaction surface, and dragging the contact pointup and down to increase or decrease the device volume. As an option, theringer volume may be adjusted by dragging left and right. In anotherembodiment, a user may change where audio is sent (i.e. internalspeakers, headphone jack, Bluetooth device, etc.) by quickly pressingtwice on a back interaction surface, then selecting an audio destinationfrom a pop-up menu presented in response to the rapid double press. Inyet another embodiment, a user may mute the audio by applying pressureon front and back interaction surfaces (i.e. a pinching motion), in apredefined corner of the device. In various embodiments, some or all ofthese device audio related operations may be available through gestureonly after the user provides some form of activation input (i.e.touching an icon in the status bar, performing a simple gesture, etc.).In this way, gesture collisions (i.e. assignment of more than oneoperation to the same gesture, etc.) may be avoided. Of course, theseand the following operations may be associated with any gesture or otheruser input, in various embodiments.

In various embodiments, a gesture may be associated with themodification of one or more display attributes. For example, in oneembodiment, a user may adjust the intensity of a display backlight byapplying contact pressure with three fingers on the display of interest.As an option, the backlight intensity may vary as a function of averagecontact pressure among the three contacts. In another embodiment, a usermay activate a “night mode” (i.e. use of a monochrome red/black colorspace, inverting the display, etc.) by sequentially applying andreleasing contact pressure on each corner of a front interactionsurface. In various embodiments, some or all of these display attributerelated operations may be available through gesture only after the userprovides some form of activation input (i.e. touching an icon in thestatus bar, performing a simple gesture, etc.). In this way, gesturecollisions (i.e. assignment of more than one operation to the samegesture, etc.) may be avoided.

In various embodiments, a gesture may be associated with themodification of one or more device attributes. For example, in variousembodiments, a device may have a status bar along one side of a displaywhich indicates the status of device hardware including, but not limitedto, Wi-Fi signal strength, cellular network type and signal strength,Bluetooth status (i.e. on, off, etc.), system volume, battery remaining,etc. In some embodiments, a user may modify the status of these deviceattributes by interacting with status bar icons. For example, in oneembodiment, a user may apply front surface contact pressure, above apredefined threshold for a predefined amount of time, to a status baricon to turn off the associated device hardware (i.e. Wi-Fi, cellularmodem, Bluetooth, etc.). In another embodiment, a user may apply similarpressure via a back interaction surface to a deactivated status bar iconto turn the associated hardware back on. As an option, applying saidcontact pressure may present the user with a menu of options associatedwith that device hardware (i.e. Wi-Fi networks to join, Bluetoothdevices to pair, activate cellular voice/data/both, etc.).

In yet another embodiment, a user may apply contact pressure to a statusbar battery indicator icon to activate a menu populated with one or morepredefined collections of settings for various power scenarios (i.e.extreme cutbacks for low battery, high performance for charged battery,maximum performance while charging, etc.). In this way, a user mayactivate a power saving mode that allows them to stay connected to aWi-Fi network while saving power by diming the display (i.e. while webbrowsing), and a different power saving mode which turns off Wi-Fiwithout having to dim the display as much (i.e. reading an eBook, etc.).

In various embodiments, some or all of these device attribute relatedoperations may be available through gesture only after the user providessome form of activation input (i.e. touching an icon in the status bar,performing a simple gesture, etc.). In this way, gesture collisions(i.e. assignment of more than one operation to the same gesture, etc.)may be avoided.

In various embodiments, a gesture may be associated withapplication-specific operations. For example, in some embodiments, auser may interact with an email client through multiple interactionsurfaces. In one embodiment, a user may scroll through a list ofmessages and select one for viewing using a back interaction surface. Inanother embodiment, a user may apply a contact pressure on a backinteraction surface, then swipe downward, to forward the currentmessage. In yet another embodiment, a user may apply a contact pressureon a back interaction surface, then swipe upward, to reply to thecurrent message. As an option, a user may perform this gesture using twofingers to reply to all recipients of the message.

In other embodiments, a user may interact with a web browser throughmultiple interaction surfaces. In one embodiment, for example, a usermay apply contact pressure on a link within a webpage, then perform aquick flicking gesture, in any direction, to open the link in abackground tab or window. In another embodiment, a user may open a linkin a new tab or window by pressing on the link through a backinteraction surface for a predetermined amount of time.

In still other embodiments, a user may interact with a cameraapplication through multiple interaction surfaces. For example, in oneembodiment, a user may indicate a point to be used for white balancingby making contact with the displayed point through a back interactionsurface. In another embodiment, a user may adjust one or more cameraproperties by applying different amounts of contact pressure on an iconshown on the front display. Possible camera properties may include, butare not limited to, aperture settings, simulated film speed, f-stop,degree of fill flash, and/or any other camera property or setting.

In even more embodiments, a user may interact with a movie playerthrough a back interaction surface. For example, in one embodiment, amenu may fade into view when a user applies a contact pressure on theback interaction surface. The menu may allow the user to perform one ormore movie-related operations, including but not limited to, togglingsubtitles, selecting an audio track, selecting a chapter or bookmark,and/or any other movie related operation or setting.

In other embodiments, a user may interact with a navigation applicationusing a back interaction surface. For example, in one embodiment, a usermay cycle through a plurality of map layers by applying different levelsof contact pressure on the back interaction surface. Possible map layersmay include, but are not limited to, satellite images, street maps,weather maps, traffic maps, points of interest, navigational route,and/or any other type of map or navigational information.

In various embodiments, some or all of these application-specificoperations may be available through gesture only after the user providessome form of activation input (i.e. touching an icon in the status bar,performing a simple gesture, etc.). In this way, gesture collisions(i.e. assignment of more than one operation to the same gesture, etc.)may be avoided.

In various embodiments, gestures may be associated with operations thatare carried out as functions of the gesture input, when the gesture isperformed and identified.

In various embodiments, the operations associated with a gesture may becarried out as a function of the associated gesture dynamics. In thecontext of the present description, gesture dynamics are aspects of agesture that may vary without changing the identity of the gesture.Possible aspects may include, but are not limited to, contact pointvelocity, contact point acceleration, contact pressure velocity, contactpressure acceleration, time to complete gesture, and/or any other aspectwhich may be associated with a gesture.

In various embodiments, the association between gesture and operationmay be context-dependent. In some embodiments, the association dependson application context (e.g., which application is active, etc.). Forexample, in one embodiment, a gesture which scrolls a text field in oneapplication may turn a page when performed in a different application.

In other embodiments, the association may depend on application or statecontext (e.g., whether or not there is an active selection, whether ornot a control has been activated, etc.). For example, in one embodiment,a gesture which may be used to select text may move text if performedwhen text has already been selected.

In other embodiments, the association may be independent of context,such that performing the gesture may cause the same operation to becarried out, regardless of what application is active. For example, agesture which brings up an interface to adjust screen brightness andvolume may be defined such that it is always available.

In various embodiments, a user may be given feedback as a gesture isperformed. For example, in one embodiment, a representation of thegesture may be temporarily displayed as the gesture is performed. Inthis way, a user may be more aware of the form of the gesture they areperforming. As an option, the geometry of the displayed gesture may besmoothed or otherwise modified.

FIG. 19 shows an exemplary contact pressure-based gesture 1900 forscrolling a text field, in accordance with one embodiment. As an option,the gesture 1900 may be implemented in the context of the architectureand environment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the gesture 1900 may be carried out in any desiredenvironment. It should also be noted that the aforementioned definitionsmay apply during the present description.

In one embodiment of a pressure-based gesture, the display properties ofone or more display(s) may be altered by the gesture, including thescroll speeds of one or more scrollable objects (e.g., text fields,images, cover art, etc.). Scrolling is a common operation, and is oftenassigned to a gesture in touch-based devices.

In one embodiment of a pressure-based gesture, one or more inputs mayalter the scrolling speeds of one or more areas on the display. As aspecific example, a user may wish to scroll quickly through a very largecollection of objects (e.g., contact names, pages of text, photographs,etc.), and desires to control the speed of scrolling in a simplefashion. While performing a classic swipe gesture to scroll through thecollection, the user may also apply increasing contact pressure to apressure-sensitive surface as a means of controlling the scroll speed(e.g., increased contact pressure yields increased scroll speed, etc.).A swipe, slide or other simple gesture may be used.

See, for example, exemplary pressure-based gesture 1900. As shown, thegesture starts at touch event 1902, which involves a single finger ismaking contact at location L1, at time T1, while exerting contactpressure P1, in accordance with one embodiment. The gesture ends attouch event 1904, with touch event attributes L2, T2, and P2. In oneembodiment, the sliding motion from L1 to L2 may be described as a swipegesture.

As shown in plot 1906, as the contact pressure increases from P1 to P2,the scroll speed increases as well, from S1 to S2. In one embodiment,scroll speed may be a display function (in this case, a function ofcontact pressure). As an option, pressure-dependent display functionsmay be step-wise, changing in response to changes in discrete touchstates, or continuous functions of a contact pressure level.

In various embodiments, pressure-based gestures may be classified aseither dynamic gestures or static gestures. In the context of thepresent description, a dynamic gesture is a gesture that requiresmovement across or in proximity to an interaction surface. For example,in one embodiment, a swipe gesture may be classified as a dynamicgesture.

In the context of the present description, a static gesture refers to agesture which does not involve movement across or in proximity to aninteraction surface. Examples of static gestures may include, but arenot limited to, button presses (real or virtual), multi-finger taps,operating a mechanical switch, a squeeze, and/or any other gesture whichdoes not require motion.

In one embodiment of a pressure-based gesture that alters displayproperties, a scroll speed display function may be defined such thatscroll speed increases in a non-linear fashion with respect to thecontact pressure exerted in a swipe gesture.

In various embodiments, pressure-based gestures may be associated withdifferent operations. For example, in one embodiment, pressure-basedgestures may alter one or more display properties. Display propertiesmay include, but are not limited to, backlight intensity, pixel color,scroll bar sensitivity, slideshow rate, and/or any other propertyassociated with a display or its contents. As a specific example, adevice may be in a sleep mode with the display and backlight inactive. Auser may move his finger into proximity of a backtouch sensor in orderto activate the display and the display backlight intensity to a lowintensity level. By increasing the pressure on the backtouch sensor, thebacklight intensity may be increased. Alternatively, the backlightintensity may be initially activated at a high level (e.g., depending onambient light sensor etc.). In this case increasing pressure on thebacktouch display may dim the backlight.

In one embodiment of a pressure-based gesture that alters a scrollspeed, as the gesture magnitude is increased, the rate of scroll speedincrease is increased. In other words, the scroll acceleration isincreased.

In the context of the present description, gesture magnitude refers tothe magnitude of the associated gesture dynamics. For example, in oneembodiment, the gesture magnitude of a swipe gesture may include thelength of the swipe and/or the contact pressure exerted during theswipe.

In one embodiment of a pressure-based gesture to control scrollacceleration, the scroll acceleration may depend on the gestureacceleration. Thus, if the contact is such that the contact point isaccelerating with time (e.g., positive contact point acceleration), thescroll acceleration may be positive. In another embodiment, if thecontact point acceleration is negative then the scroll acceleration maybe negative (e.g., scroll speed decreased, etc.).

In one embodiment of a pressure-based gesture to control scrollacceleration, the scroll acceleration may be both positive and negative,depending on the contact point movement.

In one embodiment of a pressure-based gesture to control scrollacceleration, other display functions may also be altered. Possibledisplay functions include, but are not limited to, selection(s), color,shape, image and/or text magnification, indicator(s) to provide feedbackto user, and/or any other display function.

The addition of pressure dependence to already established touchgestures may facilitate user interactions with the device. Often, theefficacy of a gesture is limited by the size of the device. For example,on a device which uses the pinch-to-zoom gesture, zooming far in or outmay require repetition of the gesture multiple times, due to screensize.

In one embodiment, the pinch-to-zoom touch gesture may be enhanced as apressure-based gesture; after performing the pinch motion, the userexerts pressure on the two contact points. So long as the pressureremains above a predefined threshold, the zoom operation may continueinward/outward without requiring additional pinch motions. As an option,the speed of the zooming may be modified by changing the contactpressure level. As another option, any differences in contact pressurelevel between the two contact points may be dealt with by using theaverage pressure.

In another embodiment, the swipe to scroll touch gesture may be enhancedas a pressure-based gesture; after performing the swipe, the user exertspressure on the contact point without further motion. So long as thepressure remains above a predefined threshold, the scroll operation maycontinue without requiring additional swiping motions. As an option, thescroll speed may vary as a function of the contact pressure level.

FIG. 20 shows an exemplary multitouch pressure gesture 2000 forindicating a direction, in accordance with one embodiment. As an option,the gesture 2000 may be implemented in the context of the architectureand environment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the gesture 2000 may be carried out in any desiredenvironment. It should also be noted that the aforementioned definitionsmay apply during the present description.

As previously discussed, touch gestures may sometimes be modified to bepressure-dependent. In various embodiments, multitouch gestures may alsobe modified to depend upon pressure. As an option, the modifiedmultitouch gestures may depend upon contact pressure differences betweendifferent contact points. In the context of the present description, amultitouch pressure gesture refers to a multitouch gesture whosedefinition relies in part on differences in contact pressure betweendifferent contacts. The definition of multitouch pressure gestures mayrely on a variation in pressure differences over time, but it is notrequired of all multitouch pressure gestures.

See, for example, multitouch pressure gesture 2000 shown in FIG. 20.This static gesture is based upon two points of contact, 2002 and 2004.In various embodiments, this gesture may be used to indicate adirection. As depicted in FIG. 20, this multitouch pressure gesture isindicating a left-to-right direction, in accordance with one embodiment.In other embodiments, this gesture may be associated with any otheroperation, function, or action.

In various embodiments, multitouch pressure gesture 2000 may beperformed by first exerting a contact pressure upon contact point 2002which exceeds a contact pressure being exerted upon contact point 2004.As an option, various embodiments may require that both of these initialcontact pressures exceed a predefined threshold contact pressure level.The gesture is completed by altering the contact pressures on the twocontact points such that the pressure exerted on 2004 now exceeds thatbeing exerted on 2002. As an option, a user may be required to maintainthis pressure inequality for a predefined amount of time. When thisgesture is performed using two digits on the same hand, the user's handmay appear to be rocking from left to right. A right to left directionmay be indicated by changing the order of the pressures. This type ofmultitouch pressure gesture is hereinafter referred to as a rockerpressure gesture.

In various embodiments, a rocker pressure gesture may be preferable oversimply indicating a side of the device through touch or pressure becauseit is less likely to be accidentally performed.

In various embodiments, a rocker pressure gesture may be used to modifya selection. For example, in one embodiment, a text selection may beexpanded in a particular direction by performing a rocker pressuregesture in the desired direction, and maintaining the contact pressuredifference between the two contact points until the text selection isthe desired size. As an option, the speed at which the selection expandsmay be increased/decreased by increasing/decreasing the contact pressuredifferential. In another embodiment, this gesture may be used to modifythe shape of a selection. For example, it may be used to modify theaspect ratio of the selection boundary geometry associated with theselection.

In various embodiments, a rocker pressure gesture may be used inconjunction with a user interface adapted for the visually impaired. Forexample, in one embodiment, the rocker pressure gesture may be used tomove a selection from one UI element (e.g., button, slider, drop downmenu, etc.) to the next. When a UI element is selected, the assistiveinterface may speak the object name and/or magnify it such that thevisually impaired user understands. In this way, a visually impaireduser may operate a user interface displayed on a screen which oftenprovides zero tactile feedback.

In various embodiments, a rocker pressure gesture may be used tofacilitate interaction with the operating system. For example, in oneembodiment, this gesture may be used to traverse a list of applicationsrunning in a multi-tasking environment. In another embodiment, thisgesture may be used to switch between windows in a windowed userenvironment. In yet another embodiment, a rocker pressure gesture may beused to increase/decrease system settings such as volume and displaybrightness.

In various embodiments, a rocker pressure gesture may be advantageous inan application environment. For example, in one embodiment, a rockerpressure gesture may be used to turn the pages of an electronic book, orother multipage document displayed as a book. Using a rocker pressuregesture would allow a user to hold the device with both hands whilereading, thumbs in contact with the screen, without danger ofaccidentally triggering a page turn, nor requiring movement of hands orfingers to turn the page.

FIG. 21 shows an exemplary multitouch pressure gesture 2100 forindicating a rotation, in accordance with one embodiment. As an option,the gesture 2100 may be implemented in the context of the architectureand environment of the previous Figures or any subsequent Figure(s). Ofcourse, however, the gesture 2100 may be carried out in any desiredenvironment. It should also be noted that the aforementioned definitionsmay apply during the present description.

In various embodiments, multitouch gestures may enhance the userexperience with the addition of pressure sensitivity. For example, inone embodiment, the measured difference in contact pressure levels amongdifferent contact points associated with a gesture may determine one ormore parameters associated with the gesture. As an option, the one ormore parameters may vary as a function of the pressure differential.Possible parameters may include, but are not limited to, speed oftransformation, direction of transformation, stringency of a colormatching selection, and/or any other parameter which may be associatedwith any type of action, command, or operation.

In another embodiment, the presence of a pressure differential amongcontact points associated with a gesture may change the identity of thegesture itself. For example, see FIG. 21.

As shown, multitouch pressure gesture 2100 is a static gesture basedupon two points of contact, 2102 and 2104. In various embodiments, thisgesture may be used to indicate a rotation. As depicted in FIG. 21, thismultitouch pressure gesture is indicating a clockwise rotation, inaccordance with one embodiment. In other embodiments, this gesture maybe associated with any operation, function, or action.

In various embodiments, multitouch pressure gesture 2100 may beperformed by exerting contact pressure upon contact points 2102 and 2104such that there is a pressure differential. For example, as seen in FIG.21, the contact pressure associated with contact point 2104 is greaterthan that associated with contact point 2102. As an option, variousembodiments may require that both of these contact pressures exceed apredefined threshold contact pressure level. The gesture is completed byending one or both contacts, or by performing a different gesture. As anoption, a user may be required to maintain this pressure inequality fora predefined amount of time. This type of multitouch pressure gesture ishereinafter referred to as a tipping pressure gesture.

In various embodiments, a tipping pressure gesture may be used to rotatean object or element on a display. For example, in one embodiment, animage or selected portion of an image may be rotated by performing atipping pressure gesture. As an option, the speed of rotation may dependupon the pressure differential between the two contact points. Inanother embodiment, the speed of rotation may vary as a function of thedistance between the two contact points.

In one embodiment, the rotation may be performed in small angularincrements, continuing until the tipping pressure gesture has ended. Inanother embodiment, the rotation is performed in 90° increments (e.g.,changing the orientation of photographs, etc.), independent of gesturelength or pressure differential. In some embodiments, the rotation maybe performed using one of the contact points as the axis of rotation.

In some embodiments, a tipping pressure gesture may only cause arotation in one direction (e.g., clockwise, etc.). In other embodiments,the direction of rotation caused by a tipping pressure gesture maydepend on the positions of the two contact points with respect to eachother. For example, in one embodiment, if the high pressure contactpoint is to the right of the low pressure contact point, the rotationmay be in a clockwise direction, and in a counterclockwise directionotherwise. See, for example, multitouch pressure gesture 2100. In oneembodiment, the axis used to make the left/right determination may bethe horizontal axis as defined by the current device orientation. Inanother embodiment, the horizontal axis used to make the left/rightdetermination is defined by device geometry, and is orientationindependent. In still other embodiments, the axis used to determineleft/right may be independent of device geometry or orientation (e.g.,display diagonal, vertical, etc.).

In various embodiments, a tipping pressure gesture may be used tointeract with user interface elements. For example, in one embodiment, atipping pressure gesture may be used to increase/decrease the value of aselected slider or scale. In another embodiment, a tipping pressuregesture may be used to cycle through options on a circular pop-up menu.In still another embodiment, a tipping pressure gesture may be used toquickly scroll through a list of items. Possible items may include, butare not limited to, email messages, songs or videos, files, photos,and/or any other object or data.

In some embodiments, there may exist two or more gestures which are thesame or similar in execution. For example, see multitouch pressuregestures 2000 and 2100. While performing a tipping pressure gesture, ifa user allows the contact pressure differential to switch sign (i.e. lowpressure contact point becomes the high pressure contact point, and visaversa), a rocker pressure gesture may be recognized by the device. Invarious embodiments, constraints may be placed upon gestures to assistthe operating system in differentiating between similar gestures.

In various embodiments, similar or identical gestures may bedistinguished from each other through the context of their use. Forexample, in one embodiment, the recognition of a tipping pressuregesture may be limited to instances where there is a rotatable objectselected; the rocker pressure gesture would be available in all otherinstances. By ensuring similar gestures are not recognizable in the samecontext, user confusion and erroneous gestures may be reduced. Thesecontexts may include, but are not limited to, selection status, devicestate, active application, system flags, selection subject matter,and/or any other property or attribute by which contexts may be defined.

In various embodiments, similar or identical gestures may bedistinguished from each other by the positions of points of interaction,relative to a common axis system. In the context of the presentdescription, a point of interaction refers to any point on aninteraction surface where user interaction may be localized. Points ofinteraction include, but are not limited to, contact points, localizedproximity and/or any other localized user interaction.

In the context of the present description, a common axis system refersto an axis system upon which all gesture data may be evaluated. Forexample, in one embodiment, the common axis system may be tied to thedevice geometry (i.e. the “horizontal” axis is always parallel to thelong edge of the main display, etc.). In another embodiment, the commonaxis system may be tied to device orientation, such that the axis systemchanges depending on accelerometer data (though it is still common toall gestures).

Using a common axis system, an examination of the relative positions ofpoints of interaction associated with a gesture may facilitatedifferentiation. For example, in one embodiment, rocker pressuregestures may only be recognized if a line between the two contact pointsis within a predefined deviation from the common horizontal axis (andthe tipping pressure gesture available in all other cases). In anotherembodiment, the similar gestures may all be available at all times, butthe location of points of interaction with respect to the common axissystem may be used to give priority to certain gestures over others incertain situations.

In various embodiments, similar or identical gestures may bedistinguished from each other through the timing associated with theirexecution. For example, in one embodiment, the performance of a rockerpressure gesture may have to be done within a certain amount of time,otherwise it may be interpreted as multiple tipping pressure gestures.In another embodiment, a tipping pressure gesture may have to be heldfor a certain amount of time before being recognized, such that thebeginning of a rocker pressure gesture may not be identified as atipping pressure gesture.

In various embodiments, one or more pressure-based gestures may becombined with other multi-touch and/or pressure-based gestures, suchthat a user may give multiple gesture-based instructions withoutbreaking contact with one or more interaction surfaces. For example,suppose a user finger is at 3 o'clock and a user thumb at 9 o'clock andfinger and thumb are one inch apart, both on a front touchscreen. Theuser may slide finger and thumb further apart. In one embodiment, thismay result in an increase in selection area, for example. The user maythen increase finger pressure. This may result in the increasedselection area being rotated.

In other embodiments, other combinations and permutations of variousinputs and gestures on various surfaces and using various sensors may beused to simplify the user interface and make pressure-based gesturesmore intuitive. As an option, such gestures may be pre-programmed, orprogrammed by the user, or a combination of both.

Pattern-based gestures may be simple to perform and easy for a user toremember. For this reason, they are well suited to a number ofapplications. One of the most basic pattern-based gestures is the fingerpress. In various embodiments, a pattern-based gesture made up of one ormore fluctuations of contact pressure between a low level and a higherlevel at a single contact point may be associated with often usedoperations. For example, in one embodiment, a double press (i.e.increase then decrease contact pressure twice) may activate an interfaceto switch between active applications in a multitasking environment. Inanother embodiment, a triple press may activate a pop-up menu populatedwith iconic representations of the user's preferred actions, contacts,applications, and scripts. In one embodiment, these gestures may besurface agnostic. For example, the application switching interface maybe activated no matter which interaction surface received the doublepress. In another embodiment, these gestures may be surface specific,allowing other system processes and applications to assign operations tothese simple gestures without colliding with a system-wide gesture. Forexample, a triple press on a side surface may activate a pop-upfavorites menu, while a triple press on a back surface may activate anapplication-specific contextual menu.

Another simple pattern-based gesture is the pinch gesture. In variousembodiments, this gesture is performed by making simultaneous contactwith two different interaction surfaces such a line connecting the twocontact points is roughly parallel to the force vectors being applied atsaid points. An example is pinching a device between a finger and athumb, the finger and thumb contacting different interaction surfaces.In another embodiment, this gesture may be pressure based. Variations onthis gesture may incorporate multiple pinches (i.e. fluctuations ofcontact pressure between a low level and a higher level, similar to thefinger presses previously described).

These simple gestures may be associated with often used operations,including but not limited to, activating device interfaces (i.e.backtouch interface, proximity sensitivity, pressure sensitivity, etc.),displaying a common system interface (i.e. application launcher, systemsettings, etc.), displaying a menu of user defined “favorites” (i.e.applications, contacts, songs, movies, web bookmarks, recently useddocuments, etc.), mute volume, and/or any other often used interface oroperation. Of course, in other embodiments, these gestures may beassociated with any operation, function, or interface.

Building off the previous gesture, a pinch slide gesture is an exampleof a pattern-based generalized gesture which combines a pinch with asliding motion. In some embodiments, it may be described as a 1-6gesture, though it is not limited to just front/back interaction. Invarious embodiments, this gesture may be performed by pinching thedevice, then sliding the pinch across the interaction surfaces whilemaintaining contact. In one embodiment, a contact pressure above apredefined threshold may also be required. This gesture mimics thetactile experience of pushing or pulling an object such as a lever orcord.

In one embodiment, a pinch slide gesture may be used to quickly movethrough an alphabetical list, similar to using tabs to quickly find acontact quickly in a paper address book. In another embodiment, thisoperation may be adopted to moving quickly through other sorted lists ofitems, including but not limited to song lists, application lists,eBooks, and/or any other collection of organized data. As an option, thedisplay may invite the use of this gesture by displaying virtual tabs(i.e. the alphabet, numbers, etc.) along a side of the display where thegesture would be performed.

In another embodiment, a pinch slide gesture may be used to quicklyselect text. For example, in one embodiment, a selection may beinitiated by pinching at the desired location. The selection may beexpanded by sliding the pinch to the desired selection end. In anotherembodiment, this method of selection may be adapted to selecting aportion of an image or graphic (i.e. pinch at one corner of desiredselection bounding box and sliding to opposite corner, etc.).

In another embodiment, a pinch slide may be used to move quickly througha large document (i.e. word processing document, web page, image, etc.).For example, in one embodiment, the user may slide a pinch up and downthe device, changing the displayed portion of the document relative tothe position of the pinch (i.e. the top of the device represents thestart of the document, the bottom of the device represents the end, andthe relative location of the pinch becomes the portion of the documentdisplayed. In another embodiment, the pinch slide may have to beinitiated at a particular location to activate this document navigationfunctionality. For example, a web browser may have an icon near the topof the display that activates pinch slide navigation when the gesture isinitiated on the icon. This functionality may be adapted to twodimensional navigation in a large image, displaying the portion of theimage represented by the relative location of the pinch.

In yet another embodiment, a pinch slide gesture may be used to displaymenus of common operations or applications. For example, in oneembodiment, a pinch slide gesture which begins near an edge of a displayand then moves inward may cause a menu or window to slide in from thatedge of the display. As an option, the menu or window may remain visibleuntil a selection is made. In another embodiment, there may be differentmenus or windows associated with each edge of a display. In stillanother embodiment, a window may be closed (i.e. slid back out of view)by using a pinch slide to pull it out a bit farther, then releasing it,similar to rolling up a window shade.

In one embodiment, a user interface may be utilized to present a contextbased menu for the user. In one embodiment, a user may interact with adisplay element by exerting contact pressure on a front interactionsurface over contact area. At the same time, the user may be in contactwith a back interaction surface, over contact area. In variousembodiments, contextual menu may be displayed near the backtouchcontact, after the user performs a predefined static gesture withincontact area. The user may then select a menu item using small movementsand contact pressure applied on the back interaction surface.

In one embodiment, the user interface may be utilized to provide easy,quick access to a plurality of favorite operations, applications,contacts, documents, and/or other types of objects. In variousembodiments, favorites panel may be displayed in response to a gesture,the selection of a hardware or software button, voice command,accelerometer input (i.e. shaking the device, flicking the users wrist,etc.), and/or any other form of user input. In one embodiment, oncefavorites panel is displayed, a user may select an item using a slidepad located on the side of the device.

In one embodiment, a user may configure which items are displayed in thefavorites panel. In another embodiment, the favorites panel may beautomatically populated by the device, based upon factors which mayinclude, but are not limited to, historical usage, date of last use,frequency of use, popularity information obtained from a remote system,and/or any other factors.

In the various embodiments described above, different combinations ofuser input have been associated with different actions. It should beunderstood that the described user inputs may be associated with anyaction, function, operation or interface, just as the described actionsmay be triggered by any combination of user inputs, according todifferent embodiments.

In the context of the present description, a cue refers to feedback,visual or otherwise, which is provided to the user. Examples of cuesinclude, but are not limited to, the display logic within selectionfunctions, visual representation of contact point movement, proximityfeedback, contact pressure level feedback, and/or any other form of userfeedback. For example, in one embodiment, the anchor object may behighlighted (e.g., change of color, text highlight, 3D representation,flashing or other dynamic selection area behavior, etc.)

In various embodiments, cues may include 3D or pseudo-3D effects. Forexample, in one embodiment, the anchor object may be made to appear tobe floating above a background image, using 3D cues.

In various embodiments, a cue may modify a 2D representation into apseudo-3D representation responsive to user inputs such as deviceorientation. For example, in one embodiment, the shadow of an object maybe adjusted according to device orientation, to provide the illusionthat an object is floating above a background. In another embodiment,the pseudo-3D representation may be responsive to user focus (including,in some embodiments, user gaze).

FIG. 22 shows a 3D layered user interface 2200, in accordance with oneembodiment. As an option, the user interface 2200 may be implemented inthe context of the architecture and environment of the previous Figuresor any subsequent Figure(s). Of course, however, the user interface 2200may be implemented in any desired environment. The aforementioneddefinitions may apply during the present description.

In the context of the present description, a 3D layered user interfacerefers to a user interface in which displayed objects may exist in oneof a plurality of layers. For example, see FIG. 22.

As shown, user interface 2200 is comprised of two layers, a front layer2202 and a back layer 2204. These layers are depicted in a staggeredarrangement, to illustrate the depth; it should be noted that in variousembodiments, the layers would be aligned. Object 2206 exists in thefront layer, while object 2208 exists in the back layer. In variousembodiments, a user may interact with the layers separately.

In various embodiments, a 3D layered user interface may be implementedin a layered display device. In the context of the present description,a layered display device refers to a device with at least one displaythat is made up of a plurality of overlapping display layers, each layerable to display content independent of other layers, with all layersfacing the same direction. For example, in one embodiment of a layereddisplay device, the device may have a display made up of a transparentdisplay located on top of a second display, both facing forward. Inanother embodiment, the display layers may be separated by a non-opaquematerial, to enhance the layered appearance.

In another embodiment of a layered display device, the display layersmay include one or more e-ink layers. In yet another embodiment, thedisplay layers may include one or more LCD layers. In still anotherembodiment, the display layers may include both e-ink and LCD layers.Other embodiments may include any combination of layers embodying anydisplay technology.

In various embodiments, a 3D layered user interface may be implementedin a device having single layer displays through the use of virtualdisplay layers. In the context of the present description, a virtualdisplay layer refers to a collection of display elements which have allbeen assigned the same apparent depth within the 3D layered userinterface. In various embodiments, a 3D layered user interface may makeuse of multiple virtual display layers. For example, in one embodiment,a 3D layered user interface may have a virtual foreground display layerand a virtual background display layer.

Additionally, in the context of the present description, a displayelement refers to the region of the display allotted to an identifiablevisual object. Identifiable visual objects may include, but are notlimited to, digital objects (i.e. images, text boxes, UI controlwidgets, selections, etc.), subject matter objects (i.e. people within aphotograph, letters and/or words within text, etc.), and/or any othertype of identifiable visual object. When located in a virtual displaylayer, display elements may be referred to as 3D display elements.

In various embodiments, virtual display layers may be given theappearance of depth through the use of 3D depth cues. In the context ofthe present description, a 3D depth cue refers to an effect,manipulation, transformation, animation, or operation which gives avisual indication of simulated depth. For example, in one embodiment, a3D depth cue may be a blur operation, such that layers located atsuccessively greater depths may appear blurrier than those closer to theuser. In various embodiments, one or more 3D depth cues may be used togive the appearance of depth to one or more virtual display layers. Inone embodiment, different 3D depth cues may be used for differentvirtual display layers. In another embodiment, 3D depth cues may be usedin conjunction with a 3D layered user interface implemented in a layereddisplay device, to enhance the layered appearance.

In one embodiment, a 3D depth cue may include the addition of a shadowelement to display elements located within a virtual display layer,making them to appear to float above the next virtual display layer. Asan option, the location of the light source(s) casting the shadows maybe based in part on data obtained from one or more cameras located onthe host device.

In one embodiment, a 3D depth cue may include the addition of adepth-based fog, giving the appearance that the layers exist in anenvironment with a thin, uniform fog. In this way, distant objects maybe “foggier” than objects close to the user.

In one embodiment, a 3D depth cue may include a depth-based apparentrate of movement. For example, in a situation where a user is swipingthrough multiple screens of layered content, the layers closer to theuser may appear to move faster than those more distant, giving theappearance of depth.

In one embodiment, a 3D depth cue may include a time-dependent visualtransformation. For example, in one embodiment, a background layer maybe transformed such that it appears to be below rippling water, whilethe foreground layer appears to be floating on the surface. In anotherembodiment, the visual transformation may be static.

In one embodiment, a 3D depth cue may include animated visual elementswhich appear to exist in between layers. Elements may include, but arenot limited to, birds or insects flying, shooting stars, tiny peoplewalking, grass blowing in the wind, and/or any other visual element.

In one embodiment, a 3D depth cue may include moving and/or transformingdisplay elements within a virtual display layer based upon detected usergaze and/or head position. For example, in one embodiment, displayelements may be compressed and virtual display layers spread apart ifthe device determines the user is viewing the display from an angle, thedegree of transformation varying with estimated viewing angle. Inanother embodiment, display elements located on different virtualdisplay layers may be slide around within their respective layers as theuser changes their angle of viewing, allowing them to “look around acorner” to see display elements that would be obscured when viewed headon.

In one embodiment, a 3D depth cue may include moving and/or transformingdisplay elements within a virtual display layer based upon changes indevice orientation detected through one or more hardware interfaces(i.e. accelerometer, tilt sensor, compass, etc.).

In one embodiment of a 3D layered user interface, the 3D cues may beimplemented such that the user interface has an apparent depth equal tothe thickness of the device. In another embodiment, the 3D cues may beimplemented such that the user interface has an apparent depth equal tothe distance between a front display and a backtouch interface.

In various embodiments, a user may interact with the layers separately.For example, in one embodiment, a front interaction surface may be usedto interact with display elements in a foreground display layer, and aback interaction surface may be used to interact with display elementsin a background display layer. See, for example, FIG. 22.

User interface 2200 is being implemented in a device having front andback touch-sensitive interaction surfaces. As shown, a user maymanipulate display element 2206, located in front layer 2202, through agesture 2210 performed on the front interaction surface. At the sametime, a user may manipulated display element 2208, located in back layer2204, through a gesture 2212 performed on the back interaction surface.In one embodiment, the manipulation of one of these display elements maybe done completely independent of the other display element.

In one embodiment of a 3D layered user interface, a front inputinterface may be used to move display elements on a virtual foregrounddisplay layer. In another embodiment of a 3D layered user interface, arear input interface may be used to move display elements on a virtualbackground display layer.

In various embodiments, there may be display layers with which a usermay not interact. For example, in one embodiment, there may be anemphasis display layer situated in front of all other display layers. Inthe context of the present description, an emphasis display layer refersto a display layer (virtual or physical) which is used to provide visualemphasis to one or more display elements without providing independentmeans of user interaction. In other words, when a user interacts with adisplay element located in an emphasis display layer, they might alsointeract with one or more other layers. For example, in one embodiment,an emphasis display layer may be used to indicate results of a textsearch within a document (i.e. target words appear to float above thedocument, etc.). Although located on a different display layer, any textselection made by the user may incorporate text from both the emphasisdisplay layer and the display layer housing the document. In anotherembodiment, an emphasis display layer may cause hyperlinks within awebpage to appear to float above the rest of the page, though still ableto be selected along with non-hyperlink text.

In another embodiment, an emphasis display layer may be used to displayuser avatars floating above the text of a chat session; the user may notinteract with the avatars. Other examples of the use of an emphasisdisplay layer may include, but are not limited to, a status bar floatingat the top of a display, pop-up volume indicators which appear when thevolume is changed, icons within the status bar, and/or any othercircumstance where visual emphasis is desired.

Another example of a display layer with which a user may not interact isan ambiance display layer. In the context of the present description, anambiance display layer refers to a display layer (virtual or physical)which is used to display decorative display elements with which a usermay not directly interact with. For example, in one embodiment, one ormore ambiance display layers may be used to create the appearance ofthree-dimensional structure within the 3D layered user interface (i.e.walls, shelves, backdrop, etc.). In another embodiment, an ambiancedisplay layer may be used to display a wallpaper or some other backdropwhich is present behind the elements and controls of the user interface.In yet another embodiment, a user may customize one or more ambiancedisplay layers through a separate user interface, but not through directinteraction.

In one embodiment of a 3D layered user interface, a rear touch input maybe used to control display elements located on a virtual display layer.In another embodiment, a rear touch input may be used together with afront touch input to control one or more display elements on one or morevirtual display layers.

In other embodiments of a 3D layered user interface, a user may interactwith one of a plurality of layers through a back interaction surface,the layer being selected using a pressure-sensitive front interface. Forexample, in one embodiment, a user may select one of a plurality ofdisplay layers by applying a predefined level of contact pressure on thefront interaction surface, and interact with the selected layer using aback interaction surface. As an option, 3D depth cues may be used toindicate “moving” through the display layers as the contact pressure ischanged (i.e. magnifying and fading display layers as they are passedby, sharpening previously blurry display layers as they grow closer,etc.).

In one embodiment, one or more display layers associated with a 3Dlayered user interface may only be interacted with through coordinateduser input on multiple interaction surfaces. For example, in oneembodiment, a touch input on the front of the device together with atouch input on the back of the device may control the overlap betweentwo or more virtual display layers.

In one embodiment, display elements may be assigned to virtual displaylayers, just as they may be assigned to physical display layers in alayered display device. In another embodiment, the process of assigningdisplay elements to virtual display layers may be the same as theprocess of assigning display elements to physical display layers in alayered display device. In yet another embodiment, a 3D layered userinterface may be designed such that it may take advantage of physicaldisplay layers, if present, or use virtual display layers if only singlelayer displays are available. It should be understood that allfunctionality and embodiments described with respect to virtual displaylayers may also be implemented in a layered display device.

In various embodiments, a 3D layered user interface for augmentedreality may use 3D depth cues to visually differentiate augmentingdisplay elements associated with physical locations near the user fromthose associate with distant physical locations. In one embodiment, 3Ddepth cues may be used to give augmenting display elements an apparentdistance from the user roughly equal to the physical location with whichthey are associated. In another embodiment, 3D depth cues may be used toaugment the video signal such that it has a three dimensionalappearance.

FIG. 23 shows exemplary pattern-based gestures 2300, in accordance withone embodiment. As an option, the gesture 2300 may be implemented in thecontext of the architecture and environment of the previous Figures orany subsequent Figure(s). Of course, however, the gesture 2300 may becarried out in any desired environment. It should also be noted that theaforementioned definitions may apply during the present description.

In the context of the present description, a pattern-based gesturerefers to a gesture defined, at least in part, by a path through a phasespace of one or more dimensions. See, for example, the pattern-basedgestures 2300.

In some embodiments, pattern-based gestures may be based upon pathsthrough a phase space whose dimensions do not include any measure oflocation on an interaction surface. In other words, in theseembodiments, pattern-based gestures may not depend upon the location ormovement of user interaction across an interaction surface. In oneembodiment, these gestures may act as gesture components, which may becombined with other gesture components to form generalized gestureswhich may or may not be based upon location on or movement across aninteraction surface.

See, for example, the pattern-based gesture 2302, described by a phasespace path which represents the time evolution of the touch stateassociated with a contact point located on a front interaction surface.The location of the contact point upon the interaction surface is of noimportance.

Pattern-based gesture 2302 is based upon three touch state transitions.At time t1, the contact point changes from touch state s0 to s1. Similarchanges of state occur at t2 and t3. In various embodiments, these touchstate transitions may be represented by ordered 2-tuples. For example,the first transition may be represented as (s1, t1). The pattern-basedgesture itself may be represented as an ordered sequence of statetransitions. For example, pattern-based gesture 2302 may be representedas {(s1,t1), (s2,t2), (s0,t3)}.

In other embodiments, pattern-based gestures may be based upon pathsthrough a phase space that may include one or more measures of physicallocation upon an interaction surface. In other words, there may existpaths through the phase space that describe motion across an interactionsurface.

In various embodiments, a pattern-based gesture may be based upon pathsthrough a phase space which does not include time as a dimension. Forexample, in one embodiment, a pattern-based gesture may be defined by aseries of transitions between touch states, where it does not matter howlong the individual touch states are maintained.

In other embodiments, a pattern-based gesture may depend upon time tothe extent that the entire path through phase space may be completedwithin a predefined amount of time (though still independent of how muchtime is spent at each state along the path). In still other embodiments,the gesture may be defined, in part, by the time spent on each leg ofthe path through phase space.

In one embodiment, a time-independent pattern-based gesture may becombined with a dynamic touch gesture (i.e. a one finger swipe, etc.) toform a generalized gesture.

In various embodiments, a touch state may be associated with a specificcontact point upon a pressure-sensitive interaction surface. In otherembodiments, the device may not be able to resolve the specific sourceof pressure exerted upon an interaction surface; in such cases, thepressure may be represented by surface touch states. In the context ofthe present description, a surface touch state is a partitioning of therange of measurable pressures exerted upon a surface (similar to touchstates associated with contact points, but not contact point specific).

In various embodiments, there may exist a subset of generalized gesturesreferred to as pattern-based generalized gestures. In the context of thepresent description, a pattern-based generalized gesture refers to apattern-based gesture which includes input from multiple sources. Forexample, see pattern-based gesture 2306, which is represented by a paththrough a two-dimensional phase space.

As shown, gesture 2306 is a pattern-based generalized gesture based uponthe evolution of a touch state on a front interaction surface and a backinteraction surface of a device, in accordance with one embodiment. Thepattern-based gesture components are 2302 and 2304.

As depicted, gesture 2306 is represented by a state transition matrix oftouch states, with transitions between touch states marked bydirectional arrows, in accordance with one embodiment. In the context ofthe present description, a state transition matrix refers to an iconicdepiction of a path through a phase space.

As shown, 2306 represents the phase space made up of all nine possiblecombinations of the three possible front and back touch states. In oneembodiment, these nine combinations may be referred to as touch statepoints. In another embodiment, the representation may also be shown asthree-dimensional, with time as the third dimension.

It should be noted that the use of descriptors such as “front” and“back” in this example are for the sake of simplicity. In variousembodiments, gesture 2306 may be performed using any two surfaces on adevice, even if the device does not have distinct front and backsurfaces. Additionally, in other embodiments, pattern-based generalizedgestures such as 2306 may include any number of additional dimensions,each describing a form of user input and/or time.

In various embodiments, a pattern-based generalized gesture may berepresented as an ordered sequence of n-tuples. For example, in oneembodiment, the gesture 2306 may be represented as a sequence of2-tuples, (front touch state, back touch state). Specifically, gesture2306 may be represented as {(s1,s0), (s2,s2), (s0,s1)}. In anotherembodiment, gesture 2306 may be represented as a sequence of 3-tuples,of the form (front touch state, back touch state, time).

While exemplary gesture 2306 is based on a path through a touch statephase space, pattern-based gestures may also be based upon types andsources of user input which are not broken into discrete states (i.e.contact pressure level, etc.). Additionally, in some embodiments,pattern-based gestures may be defined in terms of the relative states ofinput, rather than exact. For example, in one embodiment, apattern-based gesture may be defined in terms of relative pressure. Inother words, rather than require that a fixed pressure be achieved, auser may simply cause a particular change in pressure to occur. In oneembodiment, such a pattern-based gesture may be defined in terms ofgesture attributes, including derived input such as pressure velocity.

In various embodiments, the use of pattern-based gestures based uponrelative states may be used to trigger some form of user assistance.These patterns are well suited to trigger some form of user assistance,as they may be performed and recognized in the middle of performing adifferent gesture. For example, in one embodiment, a pattern-basedgesture defined as a rapid 20% decrease and increase of contact pressureof any contact, done three times, may present to the user an interfaceproviding help specific to what the user was doing at the time. Possiblecontexts include, but are not limited to, providing a list of possiblegestures when help is requested during performance of a gesture,application help or manual depending on what application is active, adetailed explanation of a user interface control which was beingselected when help was requested, and/or any other scenario where a useris operating the device.

In some embodiments, pattern-based gestures may be recognized in theform of an ordered sequence of tuples using a decision tree. The use ofa decision tree, or similar form of logic, has the advantage of beingcomputationally inexpensive. This method may be more appropriate forpattern-based gestures which are represented by paths through an easilyenumerated phase space. For example, this method of gesture recognitionmay be more appropriate for a gesture like 2306 than a similar gesturebased upon contact pressure levels, rather than touch states.

In other embodiments, the pattern-based gestures may be recognized usingpattern recognition or pattern matching. For example, in one embodiment,pattern-based gestures may be recognized using the methods, or similarmethods, as those used to determine a gesture shape in a gesturecomponent. In various embodiments, the pattern-matching algorithms andmethods may search for a match within a predefined margin of error.

In one embodiment, pattern recognition or pattern matching to identifypattern-based gestures may be performed by the device. As an option,this functionality may be part of the operating system. In anotherembodiment, the pattern recognition or pattern matching may be performedusing compute resources other than those of the device. Alternativecompute resources include, but are not limited to, a similar device,computing resources on a local network, cloud computing resources,and/or any other computing resource. In yet another embodiment, thepattern recognition or pattern matching may be performed using deviceand/or alternative computing resources combined with help from the user.

In one embodiment, pattern recognition algorithms and methods may searchfor a match between input and predefined patterns, within a certainprobability. In another embodiment, the pattern recognition algorithmsmay be probabilistic and use statistical inference to find the bestpattern match for a given set of input.

In one embodiment, probabilistic pattern recognition algorithms mayoutput a probability that the input being described by a given pattern.In one embodiment, this probability may be reported to the user, eitherspecifically (i.e. displayed as a number or percentage, etc.) or insummary (i.e. a label, a color coded border, an icon, etc.). In anotherembodiment, this probability may be used to alter or modify a selection.In yet another embodiment, this probability may be used to alter ormodify one or more display properties.

In various embodiments, probabilistic pattern recognition algorithms mayalso determine the n best matches for the given input. In oneembodiment, a user may specify the value of n. In another embodiment,these best matches may be reported to the user as a list of gesturenames and/or iconic representations of the gestures. As an option, theassociated probabilities may be reported as well.

In another embodiment, this list of probable gestures may be displayedto the user in response to a user input, such as a gesture associatedwith user assistance. In yet another embodiment, this list of probablegestures may be displayed to the user if the recognition algorithms werenot able to recognize a gesture with a probability above a predefinedthreshold. The user may be able to select the intended gesture from thelist; upon selection, the associated operation may be performed. As anoption, one or more aspects of the list items may depend upon theassociated probability of recognition. Possible aspects may include, butare not limited to, text size, button size, color, and/or any otheraspect or property that may be associated with the list.

As a specific example, in one embodiment, the user may be typing on asoft keyboard and performs a gesture. The device then determines withprobability 80% the gesture corresponds to pressing the letter W, withprobability 15% the gesture corresponds to pressing Q, and withprobability 5% that the user intended to press E. In this situation, thedevice may enlarge the W key by a large amount, enlarge the W key by asmaller amount, and enlarge the Q key by a still smaller amount.

In addition to gesture recognition, various embodiments may also performuser intent prediction. In the context of the present description,gesture prediction refers to a process of estimating user intent byassigning probabilities to candidate gestures based upon historical andreal time use data. For example, in one embodiment,

In various embodiments, the process of gesture recognition may includethe computation of the probability of user intent. In the context of thepresent description, computation of the probability of user intentrefers to the process of assigning probabilities to potential useractions, inputs, and intentions, based upon historical and current usedata. Examples of historical data include, but are not limited to, oftenmisspelled words, actions consistently followed by a correction,utilization of particular gestures in different use scenarios, and/orany other data which may establish a use pattern.

The estimation of user intent may enhance the user experience by makingthe device more responsive to user input. In various embodiments,computation of the probability of user intent may facilitate the entryof text though an interaction surface. For example, in one embodiment,frequently made spelling mistakes may be automatically corrected. Inanother embodiment, the user may be prompted with the word determined tobe most likely to be what the user is intending to type.

As an option, the user may be able to accept or decline proposed wordcompletions or proposed spelling corrections through a pressure-basedgesture. For example, in one embodiment, a user may accept or decline aproposed completion or correction with a series of taps on a backtouchinterface (i.e. one tap for accept, two taps for decline), in additionto keyboard based methods. In another embodiment, a user may bepresented with a plurality of possible words to be used for autocompletion. As an option, these words may be ordered depending upon aprobability based upon historical usage. The words may be presented tothe user in a line, with one word highlighted as a selection. In anotherembodiment, a user may cycle through proposed words with a backtouchgesture, such as a single finger swipe in the direction the words shouldbe cycled in. Of course, these actions may be associated with any othertype of gesture, including pattern-based gestures.

In various embodiments, gesture recognition may be enhanced bycomputation of the probability of user intent. For example, in oneembodiment, probabilities may be assigned to potential gestures basedupon historical gesture usage with similar context (i.e. application,selection mode, etc.). In another embodiment, estimated user intent maygive weight to certain gestures during the recognition process. In thisway, the gesture recognition process may be performed more efficiently,by considering the most likely gestures early in the process.

In various embodiments, the computation of the probability of userintent may affect the user interface. In various embodiments, the userinterface may adapt in response to the user's intended form ofinteraction. For example, in one embodiment, upon determining that theprobability that the user is performing a virtual control knob gesturehas exceeded a predefined probability, and certain context requirementshave been satisfied, a virtual control knob may appear for the user tointeract with. In this way, the user is given visual feedback that theirinput is being received in the manner they intended. Examples of contextrequirements may include, but are not limited to, the user performingthe gesture in the vicinity of a user interface object which may becontrolled via a virtual control knob (i.e. slider, date, time, etc.),the virtual control knob gesture has not been reassigned to a differentfunction by the active application, and/or any other requirement toensure that a virtual control knob only appears when the user sointends.

Pattern-based gestures may be simple to perform and easy for a user toremember. For this reason, they are well suited to a number ofapplications. One of the most basic pattern-based gestures is the fingerpress. In various embodiments, a pattern-based gesture made up of one ormore fluctuations of contact pressure between a low level and a higherlevel at a single contact point may be associated with often usedoperations. For example, in one embodiment, a double press (i.e.increase then decrease contact pressure twice) may activate an interfaceto switch between active applications in a multitasking environment. Inanother embodiment, a triple press may activate a pop-up menu populatedwith iconic representations of the user's preferred actions, contacts,applications, and scripts. In one embodiment, these gestures may besurface agnostic. For example, the application switching interface maybe activated no matter which interaction surface received the doublepress. In another embodiment, these gestures may be surface specific,allowing other system processes and applications to assign operations tothese simple gestures without colliding with a system-wide gesture. Forexample, a triple press on a side surface may activate a pop-upfavorites menu, while a triple press on a back surface may activate anapplication-specific contextual menu.

Another simple pattern-based gesture is the pinch gesture. In variousembodiments, this gesture is performed by making simultaneous contactwith two different interaction surfaces such a line connecting the twocontact points is roughly parallel to the force vectors being applied atsaid points. An example is pinching a device between a finger and athumb, the finger and thumb contacting different interaction surfaces.In another embodiment, this gesture may be pressure based. Variations onthis gesture may incorporate multiple pinches (i.e. fluctuations ofcontact pressure between a low level and a higher level, similar to thefinger presses previously described).

These simple gestures may be associated with often used operations,including but not limited to, activating device interfaces (i.e.backtouch interface, proximity sensitivity, pressure sensitivity, etc.),displaying a common system interface (i.e. application launcher, systemsettings, etc.), displaying a menu of user defined “favorites” (i.e.applications, contacts, songs, movies, web bookmarks, recently useddocuments, etc.), mute volume, and/or any other often used interface oroperation. Of course, in other embodiments, these gestures may beassociated with any operation, function, or interface.

Building off the previous gesture, a pinch slide gesture is an exampleof a pattern-based generalized gesture which combines a pinch with asliding motion. In some embodiments, it may be described as a 1-6gesture, though it is not limited to just front/back interaction. Invarious embodiments, this gesture may be performed by pinching thedevice, then sliding the pinch across the interaction surfaces whilemaintaining contact. In one embodiment, a contact pressure above apredefined threshold may also be required. This gesture mimics thetactile experience of pushing or pulling an object such as a lever orcord.

In one embodiment, a pinch slide gesture may be used to quickly movethrough an alphabetical list, similar to using tabs to quickly find acontact quickly in a paper address book. In another embodiment, thisoperation may be adopted to moving quickly through other sorted lists ofitems, including but not limited to song lists, application lists,eBooks, and/or any other collection of organized data. As an option, thedisplay may invite the use of this gesture by displaying virtual tabs(i.e. the alphabet, numbers, etc.) along a side of the display where thegesture would be performed.

In another embodiment, a pinch slide gesture may be used to quicklyselect text. For example, in one embodiment, a selection may beinitiated by pinching at the desired location. The selection may beexpanded by sliding the pinch to the desired selection end. In anotherembodiment, this method of selection may be adapted to selecting aportion of an image or graphic (i.e. pinch at one corner of desiredselection bounding box and sliding to opposite corner, etc.).

In another embodiment, a pinch slide may be used to move quickly througha large document (i.e. word processing document, web page, image, etc.).For example, in one embodiment, the user may slide a pinch up and downthe device, changing the displayed portion of the document relative tothe position of the pinch (i.e. the top of the device represents thestart of the document, the bottom of the device represents the end, andthe relative location of the pinch becomes the portion of the documentdisplayed. In another embodiment, the pinch slide may have to beinitiated at a particular location to activate this document navigationfunctionality. For example, a web browser may have an icon near the topof the display that activates pinch slide navigation when the gesture isinitiated on the icon. This functionality may be adapted to twodimensional navigation in a large image, displaying the portion of theimage represented by the relative location of the pinch.

In yet another embodiment, a pinch slide gesture may be used to displaymenus of common operations or applications. For example, in oneembodiment, a pinch slide gesture which begins near an edge of a displayand then moves inward may cause a menu or window to slide in from thatedge of the display. As an option, the menu or window may remain visibleuntil a selection is made. In another embodiment, there may be differentmenus or windows associated with each edge of a display. In stillanother embodiment, a window may be closed (i.e. slid back out of view)by using a pinch slide to pull it out a bit farther, then releasing it,similar to rolling up a window shade.

The pinch slide gesture is well adapted for providing input where one ofa plurality of values may be chosen; it is also easily combined with apinch gesture. For example, in one embodiment, a user may activate asystem and/or ringer volume slider with a double press pinch gesture,and then select a volume by sliding the pinch up and down the device. Inanother embodiment, a similar operation may be performed for backlightbrightness. In yet another embodiment, a user may cycle between systemvolume, ringer volume, and system brightness sliders with a pinchgesture, and be able to interact with said sliders using a pinch slide.In still another embodiment, the selection of system/ringer volume orbrightness may be determined by where on the device the pinch slide isbeing performed (i.e. left, middle, right, etc.).

A subset of pinch gestures are the side pinch gestures. In variousembodiments, the side pinch gesture is performed by applying contactpressure beyond a threshold value to opposite sides of the device, thesides being those other than the front and back. As an option, the usermay choose the predefined threshold value. In one embodiment, thepressure may be applied at contact points located on the sides such thata line connecting the contact points is roughly normal to the sides. Inanother embodiment, the side pinch gesture may also incorporate“presses” similar to the pinch and finger press gestures.

The side pinch gesture is a simple gesture well adapted for use withoften used operations. For example, in one embodiment, a side pinchgesture may toggle the device mute, or activate an application launcher.

A variation on the side pinch gesture is the squeeze gesture. In variousembodiments, a squeeze gesture is performed by applying contact pressurebeyond a predefined threshold to one or more contact points located onopposite sides of the device. For example, in one embodiment, thegesture may be performed by holding the device in one hand, in a naturalgrip, and applying pressure to two opposite sides by squeezing. As anoption, the squeeze gesture may incorporate “presses”, similar to thefinger press and pinch gestures.

The squeeze gesture is one of the easiest gestures to perform, and maybe reserved for operations which are to be available system wide,independent of what application is running. In various embodiments, thesqueeze gesture may be associated with commonly used operations. Forexample, in one embodiment, a double press squeeze gesture may be usedto answer a phone call. In another embodiment, a double press squeezegesture may be used to indicate an affirmative response to any on screenquery (i.e. accept proposed auto correction, accept proposed autocompletion, activate “ok” button in dialog boxes, etc.). As an option, acomplementary negative response gesture may be defined as well, agesture such as the combination of a single or double tap on the topside while squeezing the left and right sides.

In another embodiment, applying a squeeze gesture for a predefinedamount of time may be associated with a delete operation, to beperformed upon any selected or active object. As an option, the deleteoperation may be accompanied by a “crumpling paper” animation routine,as well as a prompt for user confirmation. In one embodiment, a user maynot use a squeeze gesture to confirm an operation triggered by a squeezeoperation (i.e. to prevent accidental implementation, etc.).

Another class of pattern-based gestures are the “no contact”pressure-based gestures. In some embodiments, the touch sensitiveinteraction surfaces require an implement of interaction which has acertain degree of conductivity in order to register contact. This classof gestures may be implemented in such devices, which are alsopressure-sensitive. In various embodiments, the “no contact”pressure-based gestures may be used to interact with the device insituations where direct contact is not possible (i.e. device is in case,device is in pocket, device is in purse, etc.).

In various embodiments, the “no contact” pressure-based gestures mayinclude variations of the finger press, pinch, and squeeze gestures, inaddition to others. In some embodiments, “no contact” pressure-basedgestures may require that the pressures being exerted do not create acontact point (i.e. pressure is exerted, but touch contact is notregistered). These gestures are well adapted to situations where contactis not feasible. For example, in one embodiment, a user may silence aringing phone by performing a rapid, one-finger double press on aninteraction surface while the device is in the user's pocket, purse, orany other flexible or semi-flexible vessel. In another embodiment, auser may perform a predefined pattern-based gesture to cause the mostrecently received communication (i.e. voice mail, email, SMS message,etc.) to be reported to the user through a Bluetooth audio device.

In various embodiments, gestures may be used to trigger a variety ofactivities.

FIG. 24 shows a user interface 2400 for defining custom gestures, inaccordance with one embodiment. As an option, the user interface 2400may be implemented in the context of the architecture and environment ofthe previous Figures or any subsequent Figure(s). Of course, however,the user interface 2400 may be implemented in any desired environment.The aforementioned definitions may apply during the present description.

In various embodiments, gestures may be programmed by the user. In otherembodiments, gestures may be learned by the device.

As shown, the user interface 2400 may be utilized to define a customgesture. For example, in one embodiment, the user interface may includea gesture name and/or an iconic representation of the gesture. Inanother embodiment, the iconic representation may be automaticallychosen by the system, depending upon defined gesture parameters. In yetanother embodiment, the user interface may contain a plurality ofbuttons 2402 which allow a user to save, load, copy, and/or deletecustom gestures. The user interface may also contain a list 2404 of alldefined custom gestures. As an option, the custom gestures may begrouped by context within the list.

In various embodiments, the user interface 2400 may contain a button2406 to allow the user to define a custom gesture. In one embodiment,selecting button 2406 may initiate a gesture recording session. In thecontext of the present description, a gesture recording session refersto a period of time wherein the device monitors and records allobservable user and system input. In another embodiment, selectingbutton 2406 may present to the user an interface with instructionsbefore initiating a gesture recording session. Instructions may include,but are not limited to, how to record the gesture, a list of all formsof input upon which a gesture may depend, how to end the recording,and/or any other information which may assist the user. In yet anotherembodiment, the user may be presented with a short countdown before thegesture recording session is initiated, to give the user time to preparefor the recording. As an option, the device may give some form of visualor auditory feedback to the user to indicate that the recording sessionhas begun.

In various embodiments, a gesture recording session may be terminated byuser input. For example, in one embodiment, a gesture recording sessionmay be terminated by the user through a vocal command, recognized by thesystem. In another embodiment, a gesture recording session may beterminated by the user through an sound which exceeds a predefinedvolume. In yet another embodiment, a gesture recording session may beterminated by the user by performing a gesture. As an option, thetermination gesture may be a reserved gesture.

In the context of the present description, a reserved gesture refers toa gesture which may not be reassigned by a user, application, orprocess. For example, in one embodiment, there may be a set of gestures,chosen for their simplicity, which are reserved for operationsfundamental to the user experience (i.e. a gesture to cycle throughactive applications running in a multitasking environment, etc.).

In still another embodiment, a gesture recording session may beterminated automatically after a predefined amount of time has elapsed.As an option, in one embodiment the user may specify the amount of timebefore the recording session begins.

In one embodiment, after the termination of a gesture recording session,the user may be prompted to repeat the gesture one or more times. As anoption, the user may not have to indicate when the gesture is completeafter the first recording session. In another embodiment, the repeatedperformance of the gesture may be used to better define the gestureparameters. For example, in one embodiment, gesture aspects which do notappear in every performance of the gesture may be indicated to the useras potentially irrelevant. In another embodiment, the system may useeach iteration to improve the recorded description of the gesture. Forexample, the system may calculate the probability of correctrecognition, using methods previously discussed, after each performance.As an option, the user may be prompted to repeat the gesture until thecalculated probability of correct recognition has exceeded a predefinedthreshold.

In various embodiments, the user interface 2400 may include a button2408 to allow a user to view a depiction of the performance of thecustom gesture as currently defined. For example, in one embodiment,selecting button 2408 may display an animated recreation of the gesturein the context of a wireframe model of the device. In anotherembodiment, different forms of user input may be represented bydifferent colors (i.e. pressure is red, touch is blue, proximity isgreen, etc.). As an option, changes in contact pressure level may berepresented by changes in the color representing pressure. In anotherembodiment, the device surfaces may be displayed flattened into a twodimensional plane. In still another embodiment, the gesture replay mayalso include one or more plots which depict the time evolution ofvarious gesture inputs, such as contact pressure or proximity associatedwith individual contacts or implements of interaction.

In various embodiments, the user interface 2400 may include a list 2410displaying all components of the currently defined gesture. For example,in one embodiment, list 2410 may be a nested hierarchical list, groupedby “expected implement of interaction” and input type (i.e. contact 1,contact 2, proximity 1, etc.). In another embodiment, list 2410 mayvisually indicate (i.e. italicized, colored, underlined, etc.) recordedgesture aspects which were determined to be potentially irrelevant tothe gesture. In yet another embodiment, list 2410 may break down theinput from each “expected implement of interaction” into basic inputcategories. Categories may include, but are not limited to, pressure,touch, surface identity, proximity, proximity location, and/or any otheraspect or type of user input.

The user interface 2400 may be utilized to specifically define or modifyaspects of a custom gesture. For example, in one embodiment, the userinterface 2400 may include a button 2412 to edit a gesture aspectselected in list 2410. In another embodiment, selecting button 2412 maypresent an interface to the user which may allow them to review andalter associated gesture aspects. This method of defining the gesturemay not be as intuitive as teaching the system the gesture throughrepeated performance, but it does allow much greater control over thegesture aspects.

In one embodiment, the user interface 2400 may include a plurality ofbuttons 2414 which allow a user to copy, create, and delete gestureaspects associated with the current gesture. In another embodiment, thecreation of a new gesture aspect may prompt the user to specify theinput type to create, and with which “expected implement of interaction”it should be associated. As an option, a user may create a new “expectedimplement of interaction”.

In one embodiment, the user interface 2400 may include a collection ofcheck boxes 2416 which allow a user to specify the context in which thecustom gesture may be performed. The contexts may include, but are notlimited to, universal (i.e. available at all times), text (i.e. activetext field, on-screen keyboard visible, etc.), application-specific,home (i.e. application chooser, etc.), selection (i.e. an activeselection of an object exists), and/or any other type of context.

When defining a custom gesture, the associated action may beestablished. As shown, user interface 2400 may be utilized to specifyand configure the action to be associated with the present gesture. Forexample, in one embodiment, the user interface may include a collectionof checkboxes 2418 representing different actions which may beassociated with the custom gesture.

In one embodiment, the collection of actions 2418 may include a checkbox2420 to indicate that the gesture may trigger the insertion of a textsnippet, as defined in a nearby text field. In another embodiment, theuser interface may include a collection of buttons 2422 which may beused to format the text snippet. As an option, the text snippet may bedefined as plain text, without formatting.

In another embodiment, the collection of actions 2418 may include acheckbox 2424 to indicate that the gesture may cause an application tolaunch. The user interface 2400 may also include a button which allowsthe user to specify which application should be launched when thegesture is performed.

In another embodiment, the collection of actions 2418 may include acheckbox 2426 to indicate that the gesture may set the system volume toa specified level. As an option, the user may be able to specify whetherthe gesture sets the system volume or a ringer volume. The userinterface 2400 may also include a slider which allows the user tospecify the volume to be associated with the present gesture.

In another embodiment, the collection of actions 2418 may include acheckbox 2428 to indicate that the gesture may trigger the creation of anew email message. In yet another embodiment, the user interface 2400may include a checkbox 2430 to indicate, if the gesture is performedwhile an object is selected, whether the selected object should beinserted into the new email message. Possible objects may include, butare not limited to, images, text, video, files, and/or any otherselectable media, file, or other kind of object. In still anotherembodiment, the user interface 2400 may also include a checkbox 2432 toindicate that the new email message should be addressed to a particularcontact. As an option, the user may be able to choose the email addressfrom a list of the user's contacts.

In another embodiment, the collection of actions 2418 may include acheckbox 2434 to indicate that the gesture may trigger the creation of anew SMS message. In yet another embodiment, the user interface 2400 mayinclude checkboxes 2436 and 2438 to indicate the inclusion of a selectedobject and/or specific destination for the message, similar to the “newemail message” action previously described. As an option, if a specificrecipient is not specified, the new SMS message may be directed to themost recent SMS message sender.

In another embodiment, the collection of actions 2418 may include acheckbox 2440 to indicate that the gesture may take advantage offunctionality provided by third party applications. In variousembodiments, developers of third party applications may be able toprovide functionality hooks that may be implemented by otherapplications or the operating system. For example, in one embodiment, asocial networking application may allow the user to associate the customgesture with the creation of a new posting within the social network.

In other embodiments, possible actions which may be associated with auser defined gesture may include, but are not limited to, a favoritecontact (i.e. gesture displays a pop-up interface with buttonsrepresenting different methods of communicating with the contact,including but not limited to telephone, email, SMS, social networks,etc.), a predefine energy saving profile, a predefined set ofapplication preferences, and/or any often repeated activity.

The user interface 2400 may be utilized to determine whether the customgesture may conflict with already established gestures. For example, invarious embodiments, the user interface may include a list 2442 ofconflicting gestures. In one embodiment, the list of conflicts may bemade up of other custom gestures, as well as system defined gestures. Inanother embodiment, the list may also include application specificgestures.

In yet another embodiment, items in the conflict list may be formattedto indicate their severity. For example, conflicting reserved gesturesmay be highlighted in red, while conflicting gestures which only existin a single application may be slightly greyed out. In variousembodiments, the conflict list may be created using pattern recognitionmethods previously discussed, or other methods and algorithms capable ofmatching patterns and/or data.

The user interface 2400 may be utilized to test a custom gesture, inaccordance with one embodiment. For example, in various embodiments, theuser interface may include a button 2444 which presents the user with aninterface which allows them to test the custom gesture as it iscurrently defined. In one embodiment, the gesture testing interface mayprovide the user with a plurality of forms of feedback. Feedback mayinclude, but is not limited to, current contact pressure levelassociated with each contact point, current touch state associated witheach contact point, probability of correct gesture recognition, currentgesture time, a visual representation of previous contact points, and/orany other form of user feedback.

In one embodiment, user interface 2400 may include statistics collectedas a result of the gesture testing process. These statistics mayinclude, but are not limited to, number of tests run with the currentgesture configuration, average probability of correct gesturerecognition, best probability of correct gesture recognition, identityof next most likely identified gesture (i.e. next closest gesture),minimum gesture performance time, maximum gesture performance time,average gesture performance time, and/or any other statistic related tothe testing process.

In some embodiments, user defined gestures may be recognized in anycontext they were intended for. In other embodiments, a user may have toperform a predefined activation gesture before using a custom gesture.

As a specific example of how custom gestures may be utilized, in oneembodiment, a user may define a gesture which is comprised of a triplefinger press on a top side, followed by a singer finger swipe across aback interaction surface. The user may associate this gesture with afavorite contact. Upon performing this gesture, the user may bepresented with a window showing a picture of the contact in addition tobuttons linked to their telephone number and email address. In this way,communication may be established with this contact, at any time, withnothing more than a gesture and a button press.

The various embodiments set forth herein may be implemented in a varietyof devices including, but not limited to, consumer devices, phones, cellphones, internet phones, music players, video players, cameras, socialinteraction devices, radios, TVs, watches, personal communicationdevices, electronic wallets, smart jewelry, personal computers, tablets,laptop computers, embedded systems, electronic glasses, and/or any otherdevice that includes one or more sensors or inputs. Possible inputs mayinclude, but are not limited to, keyboard, mouse, touchscreen(s),touchpad(s), interaction surfaces, a joystick, touchwheel, touchknob,touchbutton, touchball, trackball, scroll wheel, thumb-mouse, switch,button, wheel, knob, ball, pedal, voice recognition, audio command,audio prompt, gaze control, eye tracking, head position sensing, facialand/or gestural and/or postural expression recognition, and/or otherinputs and combinations of these. Possible sensors may include, but arenot limited to, range sensors, scanners, magnetometers, GPS receivers,accelerometers, cameras, depth sensors, light-field cameras, ambientlight sensors, pressure sensors, infra-red (IR) sensors, UV sensors,touch and/or proximity sensor(s), grasp sensors, material sensors,chemical sensors, physical sensors, electrical sensors, biologicalsensors, weight sensors, force sensors, mass sensors, gas sensors, vaporsensors, particle sensors, wireless sensors, RF and otherelectromagnetic sensors, and/or other sensors and combinations of these.

In various embodiments, the device may include one or more differentforms of displays and/or other outputs including, but not limited to,physical or other actuators, motors, tactile feedback or other tactileoutput, weight or mass feedback, force feedback or other force outputs,mechanical outputs, audio outputs, alarms, horns, bells, indicators,dials, meters, barcodes and/or other display patterns, vibrations,ultrasonic outputs, wireless and RF outputs, optical and light outputs,avatars, visual outputs, multiscreen displays, multilayer displays, 3Ddisplays, holographic projections and outputs, laser displays and otherlaser outputs, projection systems, heads-up displays, and/or otheroutputs or combinations of these.

In various embodiments, the device may support one or more types ofapplications including, but not limited to, search applications,contacts and/or friends applications, messaging applications, telephoneapplications, video conferencing applications, e-mail applications,communications applications, voice recognition applications, instantmessaging (IM) applications, blog and/or blogging applications,photographic applications, shopping applications, payment applications,digital camera applications, digital video camera applications, webbrowsing and browser applications, digital music player applications,digital video player applications, cloud applications, officeproductivity applications, and/or other types of applications orcombinations or multiple instances of these.

In other embodiments, different applications on the device may use oneor more interface devices that may be physical interface devices orvirtual interface devices including, but not limited to, touchscreens,touchpads, soft inputs, hard inputs, keyboards, buttons, knobs, sliders,switches, and/or any other kind of interface device.

In various embodiments, the device may have a common physicalarchitecture (i.e. display, touchscreen, etc.) such that the device maybe used with different applications with one or more common userinterfaces with one or more common properties (i.e. easy to use, simple,intuitive, transparent, etc.).

In various embodiments, user interfaces may include one or more physicalinterface devices (i.e. keyboard, joysticks, buttons, sliders, switches,knobs, other hard inputs, etc.) and/or one or more virtual or softinterface devices (i.e. soft keyboard, programmable buttons, UI sliders,UI knobs, check boxes, text fields, other soft inputs, etc.).

In various embodiments, the device may implement one or more types ofkeyboard (i.e. soft keyboard, physical keyboard, virtual keyboard,keypad, etc.). In one embodiment, the keyboard(s) may include standardkeyboard arrangements (i.e. QWERTY configurations, etc.), and/ornon-standard arrangements and/or symbols on the keys (i.e. soft keys,buttons, pixels, displayed icons etc.). In another embodiment, thekeyboard(s) may include a reduced number of symbols (i.e. letters,icons, soft keys, etc.) compared to the number of keys on a conventionalphysical keyboard. In yet another embodiment, one or more alternativekeyboards may make it easier for users to select one or more symbols inthe keyboard, and thus, one or more corresponding representations (i.e.letter, number, special symbol, graphics, emoticon, abbreviation, slang,acronym, etc.). In still another embodiment, one or more keyboards andtheir associated contents and/or layouts may be modified. For example,in one embodiment, one or more displayed symbols on the keyboard may bemodified in accordance with application, application state, devicestate, settings (i.e. language, etc.), and/or user actions.

In various embodiments, one or more keyboards may be customized to oneor more applications and/or users. For example, in one embodiment, oneor more keyboard embodiments may be customized to one or more usersbased on factors including, but not limited to, application states,stored application history, web cookies, a word usage history (i.e.lexicography, slang, individual usage, etc.), language, country, and/orany other factor. In another embodiment, one or more keyboards may bemodified to reduce the probability of user error when selecting one ormore keys when using the soft keyboards.

In various embodiments, the device may have multiple functions or rolesincluding, but not limited to, telephone, video conferencing, e-mail,instant messaging, blogging, digital photography, digital video, webbrowsing, digital music playing, social interaction, shopping,searching, and/or any other function or role. As an option, instructionsfor performing the device functions may be included in a computerreadable storage medium, or as a computer program product configured forexecution by one or more processors.

In various optional embodiments, the features, capabilities, and/ortechnology, etc. of the tablets, mobile devices, computing devices,networks, hardware, and/or software, etc. disclosed in the followingpatents/applications may or may not be incorporated into any of theembodiments disclosed herein: U.S. Pat. No. 7,479,949; U.S. Pat. No.7,748,634; US20060017692; US20100188268; US20110145692; U.S. Pat. No.7,954,101; US20070103454; US20100210329; US20070091825; US20060013219;U.S. Pat. No. 7,916,166; US20090213205; US20070296805; US20100205148;US20100188473; U.S. Pat. No. 7,441,196; U.S. Pat. No. 7,894,641; U.S.Pat. No. 7,966,578; U.S. Pat. No. 7,479,949; U.S. ProvisionalApplication No. 61/470,336, filed Mar. 31, 2011, titled “SYSTEM, METHOD,AND COMPUTER PROGRAM PRODUCT FOR UTILIZING IMAGE RECOGNITION TO PERFORMAN ACTION”; U.S. Provisional Application No. 61/470,391, filed Mar. 31,2011, titled “SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR ENABLINGA PERIPHERAL DEVICE TO UTILIZE FUNCTIONALITY ASSOCIATED WITH A MOBILEDEVICE”; and U.S. Provisional Application No. 61/569,213, filed Dec. 9,2011, titled “SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR MODIFYINGCONTENT.” Each of the foregoing patents/applications are herebyincorporated by reference in their entirety for all purposes.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Thus, the breadth and scope of a preferred embodiment shouldnot be limited by any of the above-described exemplary embodiments, butshould be defined only in accordance with the following claims and theirequivalents.

What is claimed is:
 1. An apparatus, comprising: a mobile deviceincluding a touch screen, a memory, and a vibrator coupled to at leastone processor; said memory configured to store a plurality ofapplications including an application; said touch screen configured tocooperate with the at least one processor to display indicia; said touchscreen configured to cooperate with the at least one processor toreceive a first pressure signal indicative of a first magnitude ofpressure being applied to the touch screen, in connection with theindicia; said at least one processor configured to, in response to thefirst pressure signal indicative of the first magnitude of pressurebeing applied to the touch screen, identify a first state; said touchscreen configured to cooperate with the at least one processor to, inresponse to the identification of the first state, perform an operation;said touch screen configured to cooperate with the at least oneprocessor to receive a second pressure signal indicative of a secondmagnitude of pressure being applied to the touch screen that is greaterthan the first magnitude, in connection with the indicia; said at leastone processor configured to, in response to the second pressure signalindicative of the second magnitude of pressure being applied to thetouch screen that is greater than the first magnitude, identify a secondstate; said vibrator configured to cooperate with the at least oneprocessor to, in response to the identification of the second state,vibrate the mobile device; said touch screen configured to cooperatewith the at least one processor to, in response to the identification ofthe second state, perform another operation that includes display of atleast a portion of content associated with the indicia while blurring orfogging at least a portion of an interface for making the at leastportion of the interface appear to be at a greater depth as compared tothe at least portion of the content; said touch screen configured tocooperate with the at least one processor to receive a third pressuresignal indicative of a third magnitude of pressure being applied to thetouch screen that is greater than the first magnitude; said at least oneprocessor configured to, in response to the third pressure signalindicative of the third magnitude of pressure being applied to the touchscreen that is greater than the first magnitude, identify a third state;said vibrator configured to cooperate with the at least one processorto, in response to the identification of the third state, vibrate themobile device; said touch screen configured to cooperate with the atleast one processor to, in response to the identification of the thirdstate, open the content associated with the indicia.
 2. The apparatus ofclaim 1, wherein: said touch screen is configured to cooperate with theat least one processor to receive a slide gesture signal indicative of aslide gesture being applied to the touch screen; said at least oneprocessor is configured to, in response to the slide gesture signalindicative of the slide gesture being applied to the touch screen,identify a fourth state; said touch screen is configured to cooperatewith the at least one processor to, in response to the identification ofthe fourth state, display at least one menu including a plurality ofparticular actions; said touch screen is configured to cooperate withthe at least one processor to receive a selection signal indicative ofpressure being applied to the touch screen, in connection with at leastone of the particular actions; and said at least one processorconfigured to, in response to the selection signal, execute the at leastone particular action.
 3. The apparatus of claim 2, wherein theapparatus is configured such that the fourth state occurs between thesecond state and the third state.
 4. The apparatus of claim 2, whereinthe apparatus is configured such that the touch screen is configured tocooperate with the at least one processor to receive the slide gesturesignal indicative of the slide gesture being applied to the touchscreen, after the second pressure signal and before the third pressuresignal.
 5. The apparatus of claim 2, wherein the apparatus is configuredsuch that the particular actions include at least one user-specificaction.
 6. The apparatus of claim 2, wherein the apparatus is configuredsuch that the at least one menu permits user access to the particularactions associated with the application while avoiding launching theapplication.
 7. The apparatus of claim 2, wherein the apparatus isconfigured such that the indicia includes a web hyperlink, theapplication includes a web browser application, and the particularactions include an open action and a copy action associated with theapplication.
 8. The apparatus of claim 2, wherein the apparatus isconfigured such that the indicia includes a date hyperlink, theapplication includes a calendar application, and the particular actionsinclude a create action associated with the application.
 9. Theapparatus of claim 2, wherein the apparatus is configured such that theindicia includes at least one hyperlinked aspect of a contact, and theparticular actions include a first communication type action and asecond communication type action.
 10. The apparatus of claim 2, whereinthe apparatus is configured such that the indicia includes a physicaladdress hyperlink, the application includes a navigation application,and the particular actions include showing a physical address utilizingthe navigation application.
 11. The apparatus of claim 2, wherein theapparatus is configured such that the indicia includes media, theapplication includes a media application, and the particular actionsinclude a play action associated with the application.
 12. The apparatusof claim 2, wherein the apparatus is configured such that the indiciaincludes an e-mail, the application includes an e-mail application, andthe particular actions include a reply action and a forward actionassociated with the application.
 13. The apparatus of claim 2, whereinthe apparatus is configured such that the indicia includescontent-specific indicia associated with the content, and the contentassociated with the indicia is opened in response to the identificationof the third state utilizing the application.
 14. The apparatus of claim2, wherein the apparatus is configured such that at least one of: saidtouch screen includes a touch interface and a display; said touch screenis a combination of a touch interface and a display; said touch screenis on a front face of the mobile device; said states each include aselection state; said operation is associated with the first state by auser; said operation is associated with the first state by a device;said operation is associated with the first state via system learning;said another operation is associated with the second state by a user;said another operation is associated with the second state by a device;said another operation is associated with the second state via systemlearning; said content opening is associated with the third state by auser; said content opening is associated with the third state by adevice; said content opening is associated with the third state viasystem learning; said content opening is displaying the content beingopened; said content opening includes displaying the content beingopened; said menu display is associated with the fourth state by a user;said menu display is associated with the fourth state by a device; saidmenu display is associated with the fourth state via system learning;said operation and the another operation permit viewing at least aportion of the content; said operation is performed while the secondmagnitude of pressure is maintained on the touch screen; said operationand the another operation serve to display the content differently; saidslide gesture being part of a pinch gesture; said slide gesture takingthe form of a swipe gesture; said slide gesture including a verticalslide gesture; said at least portion of the content and the interfaceare part of a three-dimensional layered user interface; said at leastportion of the content and the interface are each part of differentlayers; said fogging or blurring includes the fogging; said fogging orblurring includes the blurring; said fog includes a thin, uniform fog;said fog results from a three-dimensional depth cue; said blur resultsfrom a three-dimensional depth cue; said at least portion of the contentand the interface are each part of different layers with differentthree-dimensional depth cues; said at least portion of the content andthe interface are each part of different layers that are accessible viadifferent inputs of different pressure levels; said at least portion ofthe content and the interface are each part of different layers that areaccessible via different inputs of different pressure levels, and thefog or blur indicate a movement through the different layers; said atleast portion of the content and the interface are part of athree-dimensional layered user interface that can be operated upon via aback interaction surface; each of the first state, the second state, thethird state, and the fourth state is a touch state; each of the firststate, the second state, the third state, and the fourth state is apartitioning of a range of measurable pressures exerted upon a surface;said first state is identified in response to the identification of thefirst pressure signal, by being identified in response to theidentification of the first pressure signal, after a release of thefirst magnitude of pressure; said first state is identified in responseto the identification of the first pressure signal, by being identifiedin response to the identification of the first pressure signal withoutany intermediate input or operation; said first state is identified inresponse to the identification of the first pressure signal, by beingidentified in response to the identification of the first pressuresignal with at least one intermediate input or operation; said secondstate is identified in response to the identification of the secondpressure signal, by being identified in response to the identificationof the second pressure signal, after a release of the second magnitudeof pressure; said second state is identified in response to theidentification of the second pressure signal, by being identified inresponse to the identification of the second pressure signal without anyintermediate input or operation; said second state is identified inresponse to the identification of the second pressure signal, by beingidentified in response to the identification of the second pressuresignal with at least one intermediate input or operation; said thirdstate is identified in response to the identification of the thirdpressure signal, by being identified in response to the identificationof the third pressure signal, after a release of the correspondingpressure; said third state is identified in response to theidentification of the third pressure signal, by being identified inresponse to the identification of the third pressure signal without anyintermediate input or operation; said third state is identified inresponse to the identification of the third pressure signal, by beingidentified in response to the identification of the third pressuresignal with at least one intermediate input or operation; said firststate is capable of being identified in a first usage scenario withoutthe second state being identified, and the second state is identified ina second usage scenario without the first state being identified; saidsecond state is capable of being identified in a first usage scenariowithout the first state being identified, and the first state isidentified in a second usage scenario without the second state beingidentified; said first state is capable of being identified in a firstusage scenario without the third state being identified, and the thirdstate is identified in a second usage scenario without the first statebeing identified; said third pressure signal is indicative of a thirdmagnitude of pressure being applied to the touch screen that is greaterthan the first magnitude said third pressure signal is indicative of thesecond magnitude of pressure being applied to the touch screen that isgreater than the first magnitude; said indicia includes a hyperlink andthe at least portion of the content associated with the indicia islinked via the hyperlink; said content is opened by linking thereto viathe indicia which includes a hyperlink; said indicia includes a userinterface control widget; said indicia includes a selectable graphic;each pressure results from a touch event; or each pressure is inconnection with a gesture input.
 15. The apparatus of claim 1, whereinthe apparatus is configured such that the third magnitude of pressureassociated with the third pressure signal is a continuation of thesecond magnitude of pressure associated with the second pressure signalsuch that the second pressure signal and the third pressure signal areprompted by the same continuous gesture.
 16. The apparatus of claim 1,wherein the apparatus is configured such that the another operation isperformed while the second magnitude of pressure is maintained on thetouch screen.
 17. The apparatus of claim 1, wherein the apparatus isconfigured such that the operation and the another operation serve todisplay the content differently.
 18. The apparatus of claim 1, whereinthe apparatus is configured such that, based on a particular magnitudeof pressure and a particular time during which the particular magnitudeof pressure is applied, the indicia is capable of causing at least thefirst state, the second state, and the third state, each of which isaccessible via the indicia despite a size of the touch screen of themobile device by only varying a pressure duration and magnitude on asame location of the indicia.
 19. An apparatus, comprising: anon-transitory memory storing instructions and a plurality ofapplications; a touch screen; a vibrator; and one or more processors incommunication with the non-transitory memory, the touch screen, and thevibrator, wherein the one or more processors execute the instructionsto: display a hyperlink; receive a first pressure signal indicative of afirst magnitude of pressure being detected on the hyperlink displayed onthe touch screen; in response to the first pressure signal indicative ofthe first magnitude of pressure being detected on the hyperlinkdisplayed on the touch screen for less than a predetermined amount oftime, identify a first state; in response to the identification of thefirst state, display content associated with the hyperlink in a firstmanner; receive a second pressure signal indicative of a secondmagnitude of pressure being detected on the hyperlink displayed on thetouch screen that is greater than the first magnitude; in response tothe second pressure signal indicative of the second magnitude ofpressure being detected on the hyperlink displayed on the touch screenthat is greater than the first magnitude, identify a second state; inresponse to the identification of the second state, vibrate theapparatus; in response to the identification of the second state,display the content associated with the hyperlink in a second mannerthat results in display of the content associated with the hyperlinkover at least a portion of an interface that is blurred or fogged formaking the at least portion of the interface appear to be at a greaterdepth as compared to the content associated with the hyperlink; receivea third pressure signal indicative of a third magnitude of pressurebeing detected on the hyperlink displayed on the touch screen that isgreater than the first magnitude; in response to the third pressuresignal indicative of the third magnitude of pressure being detected onthe hyperlink displayed on the touch screen that is greater than thefirst magnitude, identify a third state; in response to theidentification of the third state, vibrate the apparatus; and inresponse to the identification of the third state, display the contentassociated with the hyperlink in the first manner.
 20. The apparatus ofclaim 19, wherein the one or more processors further execute theinstructions to: in response to the first pressure signal indicative ofthe first magnitude of pressure being detected on the hyperlinkdisplayed on the touch screen for more than the predetermined amount oftime, identify a fourth state; in response to the identification of thefourth state, display a first menu for displaying operations capable ofbeing performed in connection with the hyperlink including an openoperation, a copy operation, and a share operation; receive a firstselection signal indicative of pressure being detected on the touchscreen, in connection with at least one of the displayed operations ofthe first menu; and in response to the first selection signal, executethe at least one displayed operation of the first menu.
 21. Theapparatus of claim 20, wherein the one or more processors furtherexecute the instructions to: receive a slide gesture signal indicativeof a slide gesture being detected on the hyperlink displayed on thetouch screen after the second state; in response to the slide gesturesignal indicative of the slide gesture being detected on the touchscreen, identify a fifth state after the second state; in response tothe identification of the fifth state, display a second menu fordisplaying operations capable of being performed in connection with thehyperlink including the open operation, the copy operation, and theshare operation; receive a second selection signal indicative ofpressure being detected on the touch screen, in connection with at leastone of the displayed operations of the second menu; and in response tothe second selection signal, execute the at least one displayedoperation of the second menu.
 22. The apparatus of claim 19, wherein theapparatus is configured such that, based on a particular magnitude ofpressure and a particular time during which the particular magnitude ofpressure is detected on the hyperlink, the hyperlink is capable ofcausing at least one of the first state, the second state, or the thirdstate, where each of the first state, the second state, and the thirdstate are accessible via the hyperlink despite a size of the touchscreen of a mobile device by only varying a magnitude and duration ofpressure being detected on the hyperlink.
 23. The apparatus of claim 19,wherein the apparatus is configured such that the third magnitude ofpressure associated with the third pressure signal is a continuation ofthe second magnitude of pressure associated with the second pressuresignal such that the second pressure signal and the third pressuresignal are prompted by the same continuous gesture.
 24. The apparatus ofclaim 19, wherein the apparatus is configured such that the blurring orfogging includes the blurring, and the blurring is continuouslyincreased to provide a cue as a function of an increasing magnitude ofpressure being detected on the touch screen.
 25. An apparatus,comprising: a non-transitory memory storing instructions and a pluralityof applications; a touch screen; a vibrator; and one or more processorsin communication with the non-transitory memory, the touch screen, andthe vibrator, wherein the one or more processors execute theinstructions to: display an electronic mail message; receive a firstpressure signal resulting from a first magnitude of pressure beingdetected on the electronic mail message displayed on the touch screen;in response to the first pressure signal resulting from the firstmagnitude of pressure being detected on the electronic mail messagedisplayed on the touch screen, identify a first state; in response tothe identification of the first state, display content associated withthe electronic message in a first manner; receive a second pressuresignal resulting from a second magnitude of pressure being detected onthe electronic mail message displayed on the touch screen that isgreater than the first magnitude; in response to the second pressuresignal resulting from the second magnitude of pressure being detected onthe electronic mail message displayed on the touch screen that isgreater than the first magnitude, identify a second state; in responseto the identification of the second state, vibrate the apparatus; inresponse to the identification of the second state, display the contentassociated with the electronic message in a second manner while blurringor fogging at least a portion of an interface for making the at leastportion of the interface appear to be at a greater depth as compared toat least portion of the content; receive a third pressure signalresulting from a third magnitude of pressure being detected on theelectronic mail message displayed on the touch screen that is greaterthan the first magnitude; in response to the third pressure signalresulting from the third magnitude of pressure being detected on theelectronic mail message displayed on the touch screen that is greaterthan the first magnitude, identify a third state; in response to theidentification of the third state, vibrate the apparatus; and inresponse to the identification of the third state, display the contentassociated with the electronic message in the first manner.
 26. Theapparatus of claim 25, wherein the one or more processors furtherexecute the instructions to: receive a slide gesture signal resultingfrom a slide gesture being detected on the electronic mail messagedisplayed on the touch screen after the second state; in response to theslide gesture signal resulting from the slide gesture being detected onthe touch screen, identify a fourth state; in response to theidentification of the fourth state, display a menu for displayingoperations capable of being performed in connection with the electronicmail message including a reply operation and a forward operation;receive a selection signal resulting from a pressure being detected onthe touch screen, in connection with at least one of the displayedoperations of the menu; and in response to the selection signal, executethe at least one displayed operation of the menu.
 27. The apparatus ofclaim 25, wherein the apparatus is configured such that, based on aparticular magnitude of pressure and a particular time during which theparticular magnitude of pressure is applied to the electronic mailmessage, a pressure detected on the electronic mail message is capableof causing at least one of the first state, the second state, or thethird state, where each of the first state, the second state, and thethird state are accessible via the electronic mail message despite asize of the touch screen of a mobile device by only varying a magnitudeand duration of the pressure detected on the electronic mail message.28. The apparatus of claim 1, wherein the apparatus is configured suchthat the blurring or fogging includes the blurring, and the blurring iscontinuously increased as a function of an increasing magnitude ofpressure being applied to the touch screen, in connection with theindicia.
 29. The apparatus of claim 25, wherein the apparatus isconfigured such that the blurring or fogging includes the blurring, andthe blurring is continuously increased prior to the identification ofthe second state as a function of an increasing magnitude of pressurebeing detected on the electronic mail message displayed on the touchscreen.